相关疑难解决方法(0)

用于Javascript正则表达式的转义字符串

可能重复:
Javascript中是否有RegExp.escape函数?

我正在尝试根据用户输入构建一个javascript正则表达式:

function FindString(input) {
    var reg = new RegExp('' + input + '');
    // [snip] perform search
}

但是当用户输入包含一个?*因为它们被解释为正则表达式特殊时,正则表达式将无法正常工作.实际上,如果用户将不平衡([字符串放入其中,则正则表达式甚至无效.

什么是正确转义所有特殊字符以在正则表达式中使用的javascript函数?

javascript regex escaping

469
推荐指数
1
解决办法
27万
查看次数

Javascript中是否有RegExp.escape函数?

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

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.我觉得我不需要自己编写,那里必须有标准的东西.谢谢!

javascript regex

404
推荐指数
10
解决办法
10万
查看次数

在JavaScript RegExp中复制Java的"Pattern.quote"的功能

在Java中,您可能会尝试stackoverflow.com使用与URL匹配的正则表达式Pattern.compile("stackoverflow.com").但这是错误的,因为它.在正则表达式中具有特殊含义.解决这个问题的最简单的方法是写Pattern.compile(Pattern.quote("stackoverflow.com"))哪个就出来:Pattern.compile("\\Qstackoverflow.com\\E")其中"引号"的整个字符串.

我想在JavaScript中做同样的事情,但JavaScript的正则表达式并没有赋予任何含义\Q,\E并且它看起来不像是等效的JavaScript,所以我不知道如何去做.我的第一个想法(请参阅下面的答案)是在JavaScript正则表达式中具有特殊含义的任何字符之前加上反斜杠,但这似乎容易出错,我怀疑有人可能知道更好的方法.

这是针对Firefox扩展,因此Mozilla特定的解决方案是可以的.

javascript java regex string firefox-addon

8
推荐指数
1
解决办法
1879
查看次数

标签 统计

javascript ×3

regex ×3

escaping ×1

firefox-addon ×1

java ×1

string ×1