我只想从任何可能的字符串中创建一个正则表达式。
var usersString = "Hello?!*`~World()[]";
var expression = new RegExp(RegExp.escape(usersString))
var matches = "Hello".match(expression);
有内置的方法吗?如果没有,人们会使用什么?红宝石有RegExp.escape
。我觉得我不需要自己写东西,那里肯定有一些标准。谢谢!
我只想从任何可能的字符串中创建一个正则表达式。
var usersString = "Hello?!*`~World()[]";
var expression = new RegExp(RegExp.escape(usersString))
var matches = "Hello".match(expression);
有内置的方法吗?如果没有,人们会使用什么?红宝石有RegExp.escape
。我觉得我不需要自己写东西,那里肯定有一些标准。谢谢!
在jQueryUI的自动完成小部件(1.9.1版)中,它们使用略有不同的正则表达式(第6753行),这是将正则表达式与@bobince方法结合使用。
RegExp.escape = function( value ) {
return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
}
有一个ES7提案RegExp.escape在https://github.com/benjamingr/RexExp.escape/,与可用填充工具https://github.com/ljharb/regexp.escape。