Javascript正则表达式在OSx上不在Windows上运行

时间:2011-09-29 10:06:51

标签: javascript regex

我一直在使用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(' ');

1 个答案:

答案 0 :(得分:0)

正则表达式对象的类型不是function,而是object。至少在Internet Explorer和Firefox中。

我建议你交换if语句中的代码并检查类型是否为string,因为RegExp对象的类型似乎在浏览器之间有所不同。