如果我的id包含任何元字符在Javascript中的元字符之前附加'\\'?

时间:2013-10-31 09:43:55

标签: javascript jquery regex

我需要javascript函数来检查我的变量是否包含任何特殊字符然后追加' \'在那个特殊的角色之前:

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

1 个答案:

答案 0 :(得分:3)

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

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

致电escapeStr("Hello & World!")会返回"Hello\ \&\ World\!";