JavaScript Bank Routing Number Check
CSS
.good { background-color: green; }
.bad { background-color: red; }
JavaScript
var validRoutingNumber = function(routing) {
if (routing.length !== 9) {
return false;
}
// http://en.wikipedia.org/wiki/Routing_transit_number#MICR_Routing_number_format
var checksumTotal = (7 * (parseInt(routing.charAt(0),10) + parseInt(routing.charAt(3),10) + parseInt(routing.charAt(6),10))) +
(3 * (parseInt(routing.charAt(1),10) + parseInt(routing.charAt(4),10) + parseInt(routing.charAt(7),10))) +
(9 * (parseInt(routing.charAt(2),10) + parseInt(routing.charAt(5),10) + parseInt(routing.charAt(8),10)));
var checksumMod = checksumTotal % 10;
if (checksumMod !== 0) {
return false;
} else {
return true;
}
};
var testNumbers = [
'011103093',
'067014822',
'211274450',
'211370545',
'054001725',
'011400071',
'031201360',
'026013673',
'021302567',
'053902197',
'036001808',
'011600033',
'051000017',
'026009593',
'122101706',
'121000358',
'011400149',
'011401928',
'3839'
];
for(var i=0; i<testNumbers.length; i++) {
var valid = validRoutingNumber(testNumbers[i]);
var validClass = (valid) ? 'good' : 'bad';
$('body').append('<p class="' + validClass + '">' + testNumbers[i] + '</p>');
}