0

次のコードcorrectSNILSは最終的trueに Firefox (これは正しい) とfalseIE7 にあります。理由を特定する方法は?

var value = "02324423703";
var correctSNILS = false;
if (value.length == 11) {
    var controlDigits = value.slice(9);
    var SNILS = value.slice(0, 9);
    if (SNILS < 1001998) {
        correctSNILS = true;
    } else {
        var total = SNILS.length;
        var result = 0;
        for (var i = 0; i < total; i++) {
            result += (total - i) * SNILS[i];
        }
        if (result == 100 || result == 101) result = "00";
        if (result > 101) result %= 101;
        if (result == controlDigits) correctSNILS = true;
    }
}
$("#result").text(correctSNILS);

デモ

4

1 に答える 1

3

IE7 では String に配列としてアクセスできません。

result += (total - i) * SNILS[i];

charAt文字列関数を使用するように変更します。

result += (total - i) * SNILS.charAt(i);
于 2012-10-18T19:10:51.107 に答える