我的代码显然有问题..
function match2(string,pattern){
var patternUpper = pattern.toUpperCase(); // Change pattern to uppercase
var stringUpper = string.toUpperCase(); // Change string to uppercase
for(var i=0;i<stringUpper.length-1;i++){
if(stringUpper.indexOf(patternUpper.charAt(i))<0)
return false;
}
return true;
}
不确定为什么Firefox调试器会说“模式未定义”,因为它是在函数中定义的,对吧?
非常感谢任何帮助。
利安
编辑:它也是为字符串做这个。如果我注释掉该片段的第二行,则说“字符串未定义”。
在这里调用match2:
alert(match2("thisisatest","ahtsit"));
结果按预期工作,但问题是我认为程序中的错误会进一步下降。
答案 0 :(得分:1)
当"pattern"
参数未定义时,无论在哪个浏览器中,都意味着调用函数时出现问题,需要检查调用堆栈,在函数内部前一步,看看会发生什么传递参数时在那里。 (顺便说一下,不要使用关键字或类名来命名变量,我的意思是名为"string"
的变量)
希望它有所帮助。
干杯
答案 1 :(得分:0)
只有在未传递第二个参数或第二个参数未定义时才会发生