以下代码正常
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
}
输出:else ------------(5次)
致电getStatus("snow Showers Late")
答案 0 :(得分:4)
当您使用for(srch_str in weather_status)
循环时,srch_str
是数组的索引,而不是该索引处的元素。将正则表达式行更改为:
var bool = (new RegExp(weather_status[srch_str])).test(str);
(调试提示:console.log( srch_str )
会立即指出问题。)