我正在尝试根据用户输入构建一个javascript正则表达式:
function FindString(input) {
var reg = new RegExp('' + input + '');
// [snip] perform search
}
但是当用户输入包含一个?或*因为它们被解释为正则表达式特殊时,正则表达式将无法正常工作.实际上,如果用户将不平衡(或[字符串放入其中,则正则表达式甚至无效.
什么是正确转义所有特殊字符以在正则表达式中使用的javascript函数?
我只想用任何可能的字符串创建一个正则表达式.
var usersString = "Hello?!*`~World()[]";
var expression = new RegExp(RegExp.escape(usersString))
var matches = "Hello".match(expression);
Run Code Online (Sandbox Code Playgroud)
有内置的方法吗?如果没有,人们会用什么?Ruby有RegExp.escape.我觉得我不需要自己编写,那里必须有标准的东西.谢谢!
我正在尝试这个:
str = "bla [bla]";
str = str.replace(/\\[\\]/g,"");
console.log(str);
Run Code Online (Sandbox Code Playgroud)
替换不起作用,我做错了什么?
更新:我正在尝试删除字符串中的任何方括号,如果我这样做,那有多奇怪
replace(/\[/g, '')
replace(/\]/g, '')
Run Code Online (Sandbox Code Playgroud)
它有效,但
replace(/\[\]/g, '');
没有.