Object不支持属性或方法'match' - jQuery / ie8

时间:2014-04-07 05:22:28

标签: jquery

我使用以下代码在cookie上写,它在所有浏览器上运行良好,除了ie8:

var x = $.cookie(printedcookie); //991_0|590_0|995_0|996_0|564_0
var y = $.cookie(cookie);  // 991~1.20~/assets/img1.jpg|564~1.50~/assets/img2.jpg|201~1.10~/assets/img3.jpg|999~1.20~/assets/img4.jpg

var needles = x.split('|')
var haystack = y.split('|');
var newArray = $(haystack).filter(function (value) {
    for (var ii=0; ii<needles.length; ii++) {
        var needle = needles[ii].split('_')[0];
        var needleRegex = new RegExp("^" + needle);
        if(value.match(needleRegex)) {
            return false;
        }
    }
    return true;
});
$.cookie(cookie,newArray.join('|'),{ path: '/' , domain:domain, expires:365 });

我期待最终的输出是:

201~1.10~/assets/img3.jpg|999~1.20~/assets/img4.jpg

我想要实现的是:检查var x中每个项目的第一部分是否包含在y中。如果是,请将此值与剩余位一起删除。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

IE抛出错误:错误:对象不支持属性或方法'match'

代替.match(),你应该使用其他替代函数,比如

contains(),

hasClass(),

等......根据你的逻辑。