card type checker
by Sparrow Squire
HTML
<select id="cctype">
<option value="" >Please Select</option>
<option title="Maestro" value="switch" selected>Maestro</option>
<option title="Visa" value="visa"> Visa</option>
<option title="Mastercard" value="mastercard"> Mastercard</option>
<option title="Amex" value="amex">Amex</option>
<option title="Mastercard Debit" value="mastercarddebit"> Mastercard Debit</option>
<option title="Visa Debit" value="visad"> Visa Debit</option>
<option title="Visa Electron" value="visae"> Visa Electron</option>
</select>
<input type="text" id="ccnumber">
<input id="transactionCta" value="Complete" type="submit">
JavaScript
$('#transactionCta').click(function(){
cardTypeChecker();
});
function cardTypeChecker() {
var ccType = $('#cctype option:selected').val();
var ccNum = $('#ccnumber').val();
//replace any non numeric chars & ensure at least 16 char long
//TODO: remove length fix and properly validate.
ccNum = ccNum.replace(/\D/g,'') + "0000000000000000";
//use first 6 to determine card type.
ccNum = ccNum.substring(0, 6);
var debitArr = new Array("switch", "mastercarddebit", "visad", "visae");
alert(ccNum);
alert(ccType);
var _mastercard = new RegExp("/^((5[1-5]\d{2})(-?\s?\d{4}){3})$/i");
var _visa = new RegExp("/^((4\d{3})(-?\s?\d{4}){3})$/i");
var _amex = new RegExp("/^((3[4,7])\d{2}-?\s?\d{6}-?\s?\d{5})$/i");
if (ccType === "mastercard" && _mastercard.test(ccNum)) {
alert('mastercard');
} else if (ccType === "visa" && _visa.test(ccNum)) {
alert('visa');
} else if (ccType === "amex" && _amex.test(ccNum)) {
alert('_amex');
} else if (debitArr[i] === ccType) {
alert('debit');
} else {
alert("error");
}
}