javascript:匹配字符串中的子字符串

javascript:匹配字符串中的子字符串,javascript,Javascript,下面的代码可以正常工作 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_s

下面的代码可以正常工作

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
    }
输出:否则-----------(5次)


调用
getStatus(“雪花迟来”)

时使用
for(天气状态下的srch\u str)
循环
srch\u str
是数组的索引,而不是该索引处的元素。将正则表达式行更改为:

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


(调试提示:
console.log(srch_str)
会立即指出问题。)

当您使用
for(天气状态下的srch_str)
循环时,
srch_str
是数组的索引,而不是该索引处的元素。将正则表达式行更改为:

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


(调试提示:
console.log(srch_str)
会马上指出问题。)

for..in
用于对象而不是数组。@elclars数组是对象。RegEx很笨重,更糟糕的是每次迭代都会有一个新的RegEx对象。Tsk3.
for..in
用于对象而不是数组。@elclars数组是对象。RegEx很笨重,更糟糕的是每次迭代都有一个新的RegEx对象。Tsk3。对我有用。(您确实打开了控制台…?)我打开了控制台,在运行代码时,另一个窗口打开,显示消息{“error”:“Please use POST request”}适合我。(您确实打开了控制台…?)我打开了控制台,在运行代码时,另一个窗口打开,显示消息{“error”:“Please use POST request”}