Javascript中是否存在RegExp.escape函数?
我只想从任何可能的字符串中创建一个正则表达式。
var usersString = "Hello?!*`~World()[]";var expression = new RegExp(RegExp.escape(usersString))
var matches = "Hello".match(expression);
有内置的方法吗?如果没有,人们会使用什么?红宝石有RegExp.escape
。我觉得我不需要自己写东西,那里肯定有一些标准。谢谢!
回答:
上面链接的功能不足。它无法转义^
或$
(字符串的开头和结尾)或-
,这在字符组中用于范围。
使用此功能:
RegExp.escape= function(s) { return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
};
乍看起来似乎没有必要,但是转义-
(以及^
)使该函数适合于转义要插入字符类和正则表达式主体的字符。
转义/
使该函数适合转义要在JS正则表达式文字中使用的字符,以供以后评估。
由于逃避任何一个都没有不利之处,因此有理由逃避以涵盖更广泛的用例。
是的,如果它不是标准JavaScript的一部分,这是令人失望的。
以上是 Javascript中是否存在RegExp.escape函数? 的全部内容, 来源链接: utcz.com/qa/408365.html