替换Javascript字符串中的十六进制转义序列的问题

我正在尝试修复其中包含一些编码字符的字符串。

我认为我应该能够匹配特殊字符的十六进制字符并将它们转换回普通字符。

这是我的示例代码:

let str = "url('https\3a //');";
str = str.replace(/\x5C\x33\x61\x20/g,":"); // equivalent to '\3a '
console.log(str);  

我希望输出为url('https://');,但实际上得到了url('https a //');

我想念什么? jsfiddle here。这是某种多字节字符问题吗?我在十六进制编辑器中查看了结果字符串,被替换的字符似乎是\x03\x61\x20而不是预期的\x3A

编辑:为什么这被否决?这是一个公平的问题,不是吗?

gaoboxingf 回答:替换Javascript字符串中的十六进制转义序列的问题

您使用的代码真的需要采用这种格式吗? 我使用“ 3a”得到了预期的结果。

str = "url('https\3a //');";
str = str.replace(/\3a /g,":"); // equivalent to '\3a '
console.log(str);

//result: url('https://');

本文链接:https://www.f2er.com/3051787.html

大家都在问