Ola,
I dont tlike cfinput form etc, doesnt give the flexibility. Anyhow i have
finished the script for a complete credit card check, so if anyone needs
it in future, here it is. cheers for all the input. first time using these
forums and they are proving to be really helpful :-)
<cfscript>
/**
* If anyone needs it use it
* @param number card number to check. (Required)
* @param cardtype card type to check. (Required)
* There is only visa and mastercard below, i dont have the details for any
others but if i find any i will add them
* @return Returns a boolean.
* @author Scott Glassbrook ([EMAIL PROTECTED])
* @added to by Jamie Lawrence jenner ([EMAIL PROTECTED])
*/
function IsMod10(number,cardtype) {
var valid = true;
var card = cardtype;
var card_number = ReReplaceNoCase(number, "[^0-9]", "", "All");
var rebmun_drac = Reverse(card_number);
var length = len(rebmun_drac);
var even_list = "";
var even_numbers = "0";
var odd_numbers = "0";
var loop1 = "1";
var loop2 = "1";
/** First, pass card type to switch*/
switch(card){
/** if visa, check 16 chars in length and that it starts with a 4*/
case 'visa':
if (NOT refindnocase("^[4]{1}[0-9]{15}$",card_number)){
valid = false;
}
else
{
valid = true;
}
break;
/** if mastercard, check 16 chars in length and that it starts with 51
-
55*/
case 'mcard':
if (NOT refindnocase("^[51-55]{2}[0-9]{14}$",card_number)){
valid = false;
}
else
{
valid = true;
}
break;
default:
valid = false;
}
/*if valid is true then number fits reg expression
carry out luhn mod 10 algogarithm*/
if (valid eq true)
{
while (loop1 LTE length)
{
If ((loop1 mod 2) eq "0")
even_list = even_list & (mid(rebmun_drac,
loop1, 1) * 2);
Else
odd_numbers = (odd_numbers + mid(rebmun_drac,
loop1, 1));
loop1 = loop1 + 1;
}
while (loop2 LTE len(even_list))
{
even_numbers = (even_numbers + mid(even_list, loop2,
1));
loop2 = loop2 + 1;
}
If ((even_numbers + odd_numbers) mod 10 eq "0")
isvalid = false;
Else
isvalid = false;
}
else
{
isvalid = false;
}
return isvalid;
}
</cfscript>
---
You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
http://www.mxdu.com/ + 24-25 February, 2004