逃脱“+”加在串登录一个正则表达式中使用在的CoffeeScript / JavaScript的[复

2019-09-18 07:55发布

这个问题已经在这里有一个答案:

  • 有没有在JavaScript中RegExp.escape功能? 13个回答

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

我写的CoffeeScript,但JavaScript解决方案就可以了 - 我可以翻译为CoffeeScript的自己。

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

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

"^"+role+"$"

我怎样才能进行预处理role转义任何“+”号这样的正则表达式的工作?

Answer 1:

+远未具有特殊意义的唯一的字符。 下面是将难逃所有必要字符的功能:

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


文章来源: Escape a '+' plus sign in a string to be used in a regex in coffeescript/javascript [duplicate]