我想在字符串中进行字符串搜索.简单地说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)