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");
 }
}