相关疑难解决方法(0)

如何在regexp中正确转义字符

我想在字符串中进行字符串搜索.简单地说MySTR.search(Needle).

当此needle字符串包含特殊的正则表达式字符,如*,+等时,会出现此问题.它失败了,错误invalid quantifier.

我浏览过网页,发现字符串可以转义\Q some string \E.

但是,这并不总能产生所需的行为.例如:

var sNeedle = '*Stars!*';
var sMySTR = 'The contents of this string have no importance';
sMySTR.search('\Q' + sNeedle + '\E');
Run Code Online (Sandbox Code Playgroud)

结果是-1.好.

var sNeedle = '**Stars!**';
var sMySTR = 'The contents of this string have no importance';
sMySTR.search('\Q' + sNeedle + '\E');
Run Code Online (Sandbox Code Playgroud)

结果是"无效量词".发生这种情况是因为2个或更多特殊字符互相"触摸",因为:

var sNeedle = '*Dont touch me*Stars!*Dont touch me*';
var sMySTR = 'The contents of this string have no importance';
sMySTR.search('\Q' + sNeedle …
Run Code Online (Sandbox Code Playgroud)

javascript regex escaping

15
推荐指数
1
解决办法
2万
查看次数

标签 统计

escaping ×1

javascript ×1

regex ×1