Javascript-IBAN验证。检查德国或奥地利的IBAN
我想验证一个德国人或奥地利人的ibanJavascript-IBAN验证。检查德国或奥地利的IBAN,javascript,validation,iban,Javascript,Validation,Iban,我想验证一个德国人或奥地利人的iban ['validate-IBAN', 'Please enter a valid IBAN.', function (v) { var pass=v.strip(); if (0 == pass.length) { return true; } if (!(/[AT || DE]\w{2}/i.test(v)) || !(/[0-9]\w{18 || 20}/.test(v))) {
['validate-IBAN', 'Please enter a valid IBAN.', function (v) {
var pass=v.strip();
if (0 == pass.length) {
return true;
}
if (!(/[AT || DE]\w{2}/i.test(v)) || !(/[0-9]\w{18 || 20}/.test(v))) {
return false;
}
return !(pass.length < 20);
}],
['validate-IBAN','请输入有效的IBAN',函数(v){
var pass=v.strip();
if(0==传递长度){
返回true;
}
如果(!(/[AT | | DE]\w{2}/i.test(v))| |!(/[0-9]\w{18 | | 20}/.test(v))){
返回false;
}
返回!(通过长度<20);
}],
我想查一下像DE19 1234 1234 1234 1234 12(两个字母和20个数字)或
奥地利伊班语,如AT6119043002345732201(2个字母和18个数字)
但它不起作用。怎么了
非常感谢(-:你发明了一种新的正则表达式语法,但是你忘了告诉Javascript维护者去实现它。没有什么比
[AT | | DE]
和\w{18 | | | 20}
更好的了
您需要:
- 首先删除所有空格
- 检查regex
/DE\d{20}AT\d{18}/
isValid: function(x) {
if (x.length < 5) return false;
if (!x.match(/[A-Z]{2}[0-9]{2}[A-Z0-9]+/)) return false;
var ASCII_0 = "0".charCodeAt(0);
var ASCII_A = "A".charCodeAt(0);
var acc = 0;
function add(n) {
if (acc > 1000000) acc %= 97;
acc = n < ASCII_A ? 10 * acc + n - ASCII_0
: 100 * acc + n - ASCII_A + 10;
}
for (var i=4; i<x.length; ++i) add(x.charCodeAt(i));
for (var i=0; i<4; ++i) add(x.charCodeAt(i));
acc %= 97;
return acc == 1;
},
isValid:函数(x){
如果(x.length<5)返回false;
如果(!x.match(/[A-Z]{2}[0-9]{2}[A-Z0-9]+/)返回false;
var ASCII_0=“0”。charCodeAt(0);
var ASCII_A=“A”.charCodeAt(0);
var acc=0;
函数添加(n){
如果(acc>1000000)acc%=97;
acc=n