JavaScript搜索()未找到目标

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=

有人知道为什么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="+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中处理好了那个案子,但我想我需要逃离逃逸,让它进入搜索()。从这个新的角度来看,“.”似乎也是一个问题。如果我真的想寻找“.”而不是我需要的任何单个字符\\。