1

次のコードは正常に動作します

var srch_str = "snow"
var str = "snow Showers Late"
alert((new RegExp(srch_str)).test(str))   //true

しかし、これはそうではありません、私はなぜ得られませんでしたか?

var weather_status = ['rain', 'cloudy', "snow", 'wind', 'thunderstorms' ]
    function getStatus(str){

        for(srch_str in weather_status){


            var bool = (new RegExp(srch_str)).test(str)
            if(bool){
                str = srch_str
                Ti.API.info("if ......")
                break;
            }
            else{
                Ti.API.info(" else ----------")
            }

        }//for

        return str
    }

output : else ------------ (5回)

電話するときgetStatus("snow Showers Late")

4

1 に答える 1

4

でループするとfor(srch_str in weather_status)srch_strそのインデックスの要素ではなく、配列のインデックスになります。正規表現行を次のように変更します。

var bool = (new RegExp(weather_status[srch_str])).test(str);

デモ: http://jsfiddle.net/q688j/

(デバッグのヒント:console.log( srch_str )問題をすぐに指摘できたはずです。)

于 2013-04-13T08:32:57.467 に答える