1

我需要 javascript 函数来检查我的变量是否包含任何特殊字符,然后在该特殊字符之前附加“\”:

function escapeStr(str) {
            var specChar = /([ !"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~])/;
            if (str.match(specChar))
                return str.replace('+special character+', '\\'+special character+'');
            else
                return str;
        }
4

1 回答 1

3

您可以将正则表达式传递给String.replace,并且您已经在使用括号块,因此您可以在替换字符串中引用您的特殊字符。此外,如果您在正则表达式的末尾添加全局标志,它将遍历所有标志,而不仅仅是第一个查找。

function escapeStr(str) {
    var specChar = /([ !"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~])/g;
    return str.replace(specChar, '\\$1');
}

调用escapeStr("Hello & World!")会返回"Hello\ \&\ World\!"

于 2013-10-31T09:49:12.437 回答