Javascript: Credit card validation

Here’s a quick Javascript I wrote to validate (The 4 major American) credit card numbers, based on this post by Harrell W. Stiles.

Validate a credit card number with Javascript.

View the source on that page to grab the code, here are the two main functions as a quick reference:

function get_cc_type(n){
	var n2 = n.substr(0,2);
	var n4 = n.substr(0,4);
	var n1 = n.substr(0,1);
	var l = n.length
	
	if(n4 == "6011" && l == 16){
		return "discover";
	} else if(n1 == "4" && l > 12 && l < 17){
		return "visa";
	} else if(n2 == "51" || n2 == "52" || n2 == "53" || n2 == "54" || n2 == "55" && l == 16){
		return "mastercard";
	} else if(n2 == "34" || n2 == "37" && l == 15){
		return "american_express";
	} else {
		return "unknown";
	}
}

function is_valid_cc_number(n){
	var toggle = 0;
	var total = 0;
	n = n.split("").reverse();
	for(i=0;i<n.length;i++){
		if(toggle == 0){
			val = n[i];
			toggle = 1;
		} else {
			val = n[i] * 2;
			if(val > 9){
				tempVal = val.toString().split("");
				val = parseInt(tempVal[0]) + parseInt(tempVal[1]);
			}
			toggle = 0;
		}
		total = parseInt(total) + parseInt(val);
	}
	
	if(total % 10 === 0){
		return true;
	} else {
		return false;
	}
}

Leave a Reply