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 デバッガーが「パターンが定義されていません」と言っているのかわからないのですか?

どんな助けでも大歓迎です。

リアム

編集:文字列に対してもこれを行っています。そのスニペットの 2 行目をコメントアウトすると、「string is undefined」となります。

ここで match2 が呼び出されています。

alert(match2("thisisatest","ahtsit"));

結果は期待どおりに機能しますが、問題が原因でプログラムのさらに下にエラーが発生していると思います。

4

2 に答える 2

1

パラメータが定義されていない場合"pattern"、どのブラウザのどこにいても、関数の呼び出しに問題があることを意味し、関数内の 1 ステップ前にコール スタックをチェックして、パラメータを渡すときに何が起こっているかを確認する必要があります。(ちなみに、キーワードやクラス名を使用して変数に名前を付けないでください。つまり、 という名前の変数を意味します"string")

それが役に立てば幸い。

乾杯

于 2012-11-10T19:47:26.313 に答える
0

2 番目の引数を渡さないか、2 番目の引数が未定義の場合にのみ発生します。

于 2012-11-10T19:46:12.817 に答える