在coffeescript / javascript中的正则表达式中使用字符串中的“+”加号

时间:2012-06-20 15:15:49

标签: javascript jquery coffeescript datatables

我有正则表达式我正在运行以过滤表格中的行。过滤在Javascript中完成。

我正在编写coffeescript,但Javascript解决方案没问题 - 我可以将其自己翻译成coffeescript。

我有一个值role,其中包含我想要使用正则表达式过滤的字符串。问题是字符串role 可能会或可能没有嵌入“+”符号。加号是正则表达式搜索的特殊字符,需要在搜索字符串中进行转义。

我像这样创建正则表达式搜索字符串(coffeescript):

"^"+role+"$"

我如何预处理role以逃避任何'+'符号,以便正则表达式有效?

1 个答案:

答案 0 :(得分:4)

+远非唯一具有特殊含义的角色。这是一个将逃避所有必要字符的函数:

function regex_escape(str) {
    return str.replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'), '\\$&');
}