簡體   English   中英

在 Javascript 中替換字符串中的十六進制轉義序列的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM