1. 检查总IBAN长度是否符合国家的要求。如果不符合,IBAN无效。 2. 将前四个字符移动到字符串的末尾。 3. 用两位数字替换字符串中的每个字母,从而扩展字符串,其中A = 10,B = 11,...,Z = 35。 4. 将字符串解释为十进制整数,并计算该数字除以97的余数。
我正在为白俄罗斯IBAN执行此操作,因此它必须遵循以下格式 2C 31N - RU1230000000000000000000000000000
如何修改以下内容以满足上述规则:
function validateIBAN(iban) {
var newIban = iban.toUpperCase(),
modulo = function(divident, divisor) {
var cDivident = '';
var cRest = '';
for (var i in divident) {
var cChar = divident[i];
var cOperator = cRest + '' + cDivident + '' + cChar;
if (cOperator < parseInt(divisor)) {
cDivident += '' + cChar;
} else {
cRest = cOperator % divisor;
if (cRest == 0) {
cRest = '';
}
cDivident = '';
}
}
cRest += '' + cDivident;
if (cRest == '') {
cRest = 0;
}
return cRest;
};
if (newIban.search(/^[A-Z]{2}/gi) < 0) {
return false;
}
newIban = newIban.substring(4) + newIban.substring(0, 4);
newIban = newIban.replace(/[A-Z]/g, function(match) {
return match.charCodeAt(0) - 55;
});
return parseInt(modulo(newIban, 97), 10) === 1;
}
console.log(validateIBAN("RU1230000000000000000000000000000"));
return mod97(digits) === 1;
。 - Artur K.