我一直在使用Safari作为主浏览器在OSx上开发一个javascript应用程序,我正在尝试将此应用程序迁移到以WAMP作为我的服务器的Windows系统。
代码没有改变,但是当使用正则表达式在数组中执行查找时,它将不再正常工作。我收到的返回值为false,不应该是这种情况。如果有人能够简单地看一下这段代码并给我一些意见,我将非常感激。
Array.prototype.find = function(searchStr) {
var returnArray = false;
for (index=0; index<this.length; index++) {
if (typeof(searchStr) == 'function') {
if (searchStr.test(this[index])) {
if (!returnArray) { returnArray = [] }
returnArray.push(index);
}
} else {
if (this[index]===searchStr) {
if (!returnArray) { returnArray = [] }
returnArray.push(index);
}
}
}
return returnArray;
}
var newIndexTargetID = window.indexTargetID;
var searchStr =RegExp(newIndexTargetID,'i');
var regexp1=mytool_array.find(searchStr);
alert ("2" + mytool_array[regexp1])
var previousProperty = mytool_array[regexp1];
mytool_array[regexp1] = "[[" + timeLimitID + "," + '"' + l[j].sourceId +
'"' + "," + timeLimitProperty + "]]" + "(" + previousProperty + ")";
finalResult = mytool_array.join(' ');
答案 0 :(得分:0)
正则表达式对象的类型不是function
,而是object
。至少在Internet Explorer和Firefox中。
我建议你交换if
语句中的代码并检查类型是否为string
,因为RegExp
对象的类型似乎在浏览器之间有所不同。