Javascript中是否存在RegExp.escape函数?

我只想从任何可能的字符串中创建一个正则表达式。

var usersString = "Hello?!*`~World()[]";
var expression = new RegExp(RegExp.escape(usersString))
var matches = "Hello".match(expression);

有内置的方法吗?如果没有,人们会使用什么?红宝石有RegExp.escape我觉得我不需要自己写东西,那里肯定有一些标准。谢谢!

猴子Gil2020/03/16 11:58:32

有一个ES7提案RegExp.escape在https://github.com/benjamingr/RexExp.escape/,与可用填充工具https://github.com/ljharb/regexp.escape

乐达蒙2020/03/16 11:58:32

在jQueryUI的自动完成小部件(1.9.1版)中,它们使用略有不同的正则表达式(第6753行),这是将正则表达式与@bobince方法结合使用。

RegExp.escape = function( value ) {
     return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
}