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

JavaScript

JimLEYHarry

2020-03-16

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

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

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

第1701篇《Javascript中是否存在RegExp.escape函数?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
猴子Gil 2020.03.16

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

乐达蒙 2020.03.16

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

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android