JavaScript搜索()未找到目标
有人知道为什么JSFIDLE here-return-1中的前三个搜索会出现吗 谢谢JavaScript搜索()未找到目标,javascript,Javascript,有人知道为什么JSFIDLE here-return-1中的前三个搜索会出现吗 谢谢 var gotoTarget = "http://register.php?from="; var off1 = gotoTarget.search('register.php?from='); console.log ("off1="+off1); off2 = gotoTarget.search('register.php\?from='); console.log ("off2=
var gotoTarget = "http://register.php?from=";
var off1 = gotoTarget.search('register.php?from=');
console.log ("off1="+off1);
off2 = gotoTarget.search('register.php\?from=');
console.log ("off2="+off2);
off3 = gotoTarget.search('register.phpfrom=');
console.log ("off3="+off3);
off4 = gotoTarget.search('register.php');
console.log ("off4="+off4);
传递给
.search()
的参数是正则表达式。如果未传递正则表达式,则传递的内容将隐式转换为正则表达式
根据:
str.search(regexp)
参数
正则表达式对象。如果传递了非RegExp对象obj,则使用新的RegExp(obj)将其隐式转换为RegExp
您需要转义问号,因为问号是有效的正则表达式字符
var off1 = gotoTarget.search('register\\.php\\?from=');
console.log(off1); // returns 7
在上面的示例中,第一个根本没有转义,第二个转义错误,第三个缺少?
,因此找不到匹配项
谢谢。我以为我在off2中处理好了那个案子,但我想我需要逃离逃逸,让它进入搜索()。从这个新的角度来看,“.”似乎也是一个问题。如果我真的想寻找“.”而不是我需要的任何单个字符\\。