1

我的代码显然有问题..

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"));

结果按预期工作,但我认为这个问题在我的程序中进一步导致错误。

4

2 回答 2

1

"pattern"参数未定义时,无论在哪个浏览器中,都表示调用该函数有问题,您需要检查调用堆栈,在函数内部执行前一步,看看传递参数时发生了什么。(顺便说一下,不要使用关键字或类名来命名变量,我是指名为的变量"string"

希望能帮助到你。

干杯

于 2012-11-10T19:47:26.313 回答
0

仅当您不传递第二个参数或第二个参数未定义时才会发生这种情况

于 2012-11-10T19:46:12.817 回答