我正在尝试修复其中包含一些编码字符的字符串。
我认为我应该能够匹配特殊字符的十六进制字符并将它们转换回普通字符。
这是我的示例代码:
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
。
编辑:为什么这被否决?这是一个公平的问题,不是吗?