Subversion-Projekte lars-tiefland.zeldi.de

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
2 lars 1
/**
2
 * This is used in the United States to process payments, deposits,
3
 * or transfers using the Automated Clearing House (ACH) or Fedwire
4
 * systems. A very common use case would be to validate a form for
5
 * an ACH bill payment.
6
 */
7
$.validator.addMethod( "abaRoutingNumber", function( value ) {
8
	var checksum = 0;
9
	var tokens = value.split( "" );
10
	var length = tokens.length;
11
 
12
	// Length Check
13
	if ( length !== 9 ) {
14
		return false;
15
	}
16
 
17
	// Calc the checksum
18
	// https://en.wikipedia.org/wiki/ABA_routing_transit_number
19
	for ( var i = 0; i < length; i += 3 ) {
20
		checksum +=	parseInt( tokens[ i ], 10 )     * 3 +
21
					parseInt( tokens[ i + 1 ], 10 ) * 7 +
22
					parseInt( tokens[ i + 2 ], 10 );
23
	}
24
 
25
	// If not zero and divisible by 10 then valid
26
	if ( checksum !== 0 && checksum % 10 === 0 ) {
27
		return true;
28
	}
29
 
30
	return false;
31
}, "Please enter a valid routing number." );