字符串索引器在Javascript中是否有效?

时间:2012-11-16 03:15:39

标签: javascript jquery string internet-explorer-8 indexer

我遇到了一个在IE8中出现的错误,但在Firefox,Chrome或IE9 +中没有。

一段代码:

Date.prototype.ddmmyyyy = function() {
    var yyyy = this.getFullYear().toString();
    var mm = (this.getMonth()+1).toString();
    var dd = this.getDate().toString();
    return (dd[1]?dd:"0"+dd[0]) + '/' + (mm[1]?mm:"0"+mm[0]) + '/' + yyyy;
};

我不会详细解释它确实(或试图)这是非常明显的。我不知道dd[0]dd[1]都会在IE8中返回 undefined

编写代码的更好方法是什么?或者有没有办法使字符串[/ array]索引器工作?

2 个答案:

答案 0 :(得分:4)

使用.charAt(1)代替[1]表示法。


或者你可以将.split()字符串放入数组中。

var dd = this.getDate().toString().split("");

dd[1];

最终,我会这样做:

Date.prototype.ddmmyyyy = function() {
    var yyyy = this.getFullYear();
    var mm = ("0" + (this.getMonth()+1)).slice(-2);
    var dd = ("0" + this.getDate()).slice(-2);
    return dd + '/' + mm + '/' + yyyy;
};

答案 1 :(得分:2)

您可以修改三元语句以检查字符串的长度。

dd.length > 1 ? dd : '0' + dd