我需要javascript函数来检查我的变量是否包含任何特殊字符然后追加' \'在那个特殊的角色之前:
function escapeStr(str) {
var specChar = /([ !"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~])/;
if (str.match(specChar))
return str.replace('+special character+', '\\'+special character+'');
else
return str;
}
答案 0 :(得分:3)
您可以将正则表达式传递给String.replace
,并且您已经使用了括号块,因此您可以在替换字符串中引用您的特殊字符。另外,如果你在正则表达式的末尾添加全局标志,它将遍历所有这些,而不仅仅是第一次查找。
function escapeStr(str) {
var specChar = /([ !"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~])/g;
return str.replace(specChar, '\\$1');
}
致电escapeStr("Hello & World!")
会返回"Hello\ \&\ World\!"
;