2013-05-13 70 views
0

我有这片JS引发了上述错误(IE8 & 7)。我已经看了一个尾随逗号一千次,并找不到它 - 可能是其他地方的问题?任何帮助,将不胜感激。'1'为空或没有对象...再次

ts.addParser({ 
id: 'customDate', 
is: function(s) { 
    return false; 
}, 
format: function(s) { 
    var date = s.match(/^\s(\w{1,2})[.](\d{1,2})[.](\d{4})[,]\s(\d{1,2})[:](\d{1,2})\s\bUhr\b\s$/); 

    var day = String(date[1]); 
    var month = String(date[2]); 
    var year = String(date[3]); 
    var hour = String(date[4]); 
    var minute = String(date[5]); 
    return '' + year + month + day + hour + minute; 
}, type: 'numeric' 
}); 
+0

什么是 “TS” 的参考?该错误发生在“addParser”函​​数内部,并且没有看到将很难说出问题所在。 – Pointy 2013-05-13 15:34:01

+0

错误发生在这里:var day = String(date [1]); ts是指Tablesorter插件。 – user1209235 2013-05-13 15:34:56

+0

它应该不是'date [0]','date [1]',... – karthikr 2013-05-13 15:34:59

回答

3

如果正则表达式匹配失败datenull。所以

var day = String(date[1]); 

将会失败。

添加一个检查:

if (date === null) // return error or some default 
+0

正则表达式匹配不会失败,并且日期不为空。任何其他想法? – user1209235 2013-05-14 08:21:19

+0

感谢您指引我朝着正确的方向发展。看来IE7并不喜欢那个正则表达式,这要归功于另一个bug - http://blog.stevenlevithan.com/archives/regex-lookahead-bug – user1209235 2013-05-14 15:49:17

+0

在改变正则表达式之后,它就像一个魅力一样。 – user1209235 2013-05-14 15:49:38