我的字符串包含一些特殊字符,需要在字符串前使用 (\) 双反斜杠进行转义。我的代码如下:
var data = "abckdef)ghijkl)-8-mno-3-(pqrstuvw-1-xyz)-5-thiaa-1-aza-";
var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~_";
for (var i = 0; i < data.length; i++) {
if (iChars.indexOf(data.charAt(i)) != -1) {
console.log("Your string has special characters. \nThese are not allowed.");
return false;
}
}
预期结果是:
abckdef\)ghijkl\)\-8\-mno\-3\-\(pqrstuvw\-1\-xyz\)\-5\-thiaa\-1\-aza\-
上面的代码查找字符串中的特殊字符,但我想在每次出现特殊字符之前添加 (\\)。有什么帮助吗?
最佳答案
使用正则表达式替换:
匹配:
/[!@#$%^&*()+=\-[\]\\';,./{}|":<>?~_]/
替换为:
\$&
>>> data.replace(/[!@#$%^&*()+=\-[\]\\';,./{}|":<>?~_]/g, "\\$&")
... "abckdef\)ghijkl\)\-8\-mno\-3\-\(pqrstuvw\-1\-xyz\)\-5\-thiaa\-1\-aza\-"
关于javascript代码检查特殊字符并在其之前添加双斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25376698/