Привет, мне нужно сделать Проверка проверки IBAN с использованием javascript
.Проверка проверки IBAN
правила я должен следовать является
Проверки на IBAN An IBAN проверяется путем преобразования его в целое число и выполнения основной Mod-97 операций (как описано в ISO 7064) на нем. Если IBAN действительно, остаток равен 1.
.Проверить, что общая длина IBAN является правильным согласно стране. Если нет, то IBAN является недействительным
.Привести четыре начальных символов до конца строки
.Привернуть каждую букву в строке с двумя цифрами, тем самым расширяя строку, где а = 10, в = 11, ..., Z = 35
.Interpret строка в виде десятичного целого числа и вычислить остаток от этого числа при делении на 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;
}
этот код не может подтвердить молдавскую IBAN. например, 'MD75EX0900002374642125EU'. согласно www.iban.com действительно – armen
Спасибо @armen. Проблема open (https://github.com/arhs/iban.js/issues/23) скоро исправит ее. –
очень хороший @Laurent VB, есть ли список рассылки, чтобы сообщить мне после этого исправления? – armen