27 lines
753 B
JavaScript
27 lines
753 B
JavaScript
/*
|
|
* Dutch bank account numbers (not 'giro' numbers) have 9 digits
|
|
* and pass the '11 check'.
|
|
* We accept the notation with spaces, as that is common.
|
|
* acceptable: 123456789 or 12 34 56 789
|
|
*/
|
|
$.validator.addMethod( "bankaccountNL", function( value, element ) {
|
|
if ( this.optional( element ) ) {
|
|
return true;
|
|
}
|
|
if ( !( /^[0-9]{9}|([0-9]{2} ){3}[0-9]{3}$/.test( value ) ) ) {
|
|
return false;
|
|
}
|
|
|
|
// Now '11 check'
|
|
var account = value.replace( / /g, "" ), // Remove spaces
|
|
sum = 0,
|
|
len = account.length,
|
|
pos, factor, digit;
|
|
for ( pos = 0; pos < len; pos++ ) {
|
|
factor = len - pos;
|
|
digit = account.substring( pos, pos + 1 );
|
|
sum = sum + factor * digit;
|
|
}
|
|
return sum % 11 === 0;
|
|
}, "Please specify a valid bank account number" );
|