在coffeescript / javascript 中使用正则表达式中的字符串中的“+”加号
我有一个正则表达式我正在运行以过滤表中的行。 过滤在Javascript中完成。
我正在写coffeescript,但Javascript解决方案没问题 – 我可以将其自己翻译成coffeescript。
我有一个值role
,包含我想要使用正则表达式过滤的字符串。 问题是字符串role
可能包含也可能没有嵌入“+”符号。 加号是正则表达式搜索的特殊字符,需要在搜索字符串中进行转义。
我像这样创建正则表达式搜索字符串(coffeescript):
"^"+role+"$"
我如何预处理role
以逃避任何“+”符号,以便正则表达式工作?
+
远非唯一具有特殊含义的角色。 这是一个将逃避所有必要字符的函数:
function regex_escape(str) { return str.replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'), '\\$&'); }