[英]Issue with replacing hexadecimal escape sequences in a string in Javascript
我正在尝试修复其中包含一些编码字符的字符串。
我想我应该能够匹配特殊字符的十六进制字符并将它们转换回普通字符。
这是我的示例代码:
let str = "url('https\3a //');";
str = str.replace(/\x5C\x33\x61\x20/g,":"); // equivalent to '\3a '
console.log(str);
我希望 output 是url('https://');
但我实际上得到了url('https a //');
我错过了什么? jsfiddle在这里。 这是某种多字节字符问题吗? 我在十六进制编辑器中查看了生成的字符串,替换的字符似乎是\x03\x61\x20
而不是预期的\x3A
。
编辑:为什么这被否决了? 这是一个公平的问题,不是吗?
您使用的代码真的需要采用这种形式吗? 我使用“3a”得到了想要的结果。
str = "url('https\3a //');"; str = str.replace(/\3a /g,":"); // equivalent to '\3a ' console.log(str); //result: url('https://');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.