3

我正在运行一个正则表达式来过滤表中的行。过滤是在 Javascript 中完成的。

我正在编写coffeescript,但是一个Javascript 解决方案会很好——我可以自己将它翻译成coffeescript。

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

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

"^"+role+"$"

如何预处理role以转义任何“+”符号以便正则表达式起作用?

4

1 回答 1

5

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

function regex_escape(str) {
    return str.replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'), '\\$&');
}
于 2012-06-20T15:18:46.500 回答