blob: 8c9fd91248ae3d38235814542802e9aba05f602a [file] [log] [blame]
dojo.provide("dojo.validate.creditCard");
dojo.require("dojo.lang.common");
dojo.require("dojo.validate.common");
dojo.validate.isValidCreditCard=function(_1,_2){
if(_1&&_2&&((_2.toLowerCase()=="er"||dojo.validate.isValidLuhn(_1))&&(dojo.validate.isValidCreditCardNumber(_1,_2.toLowerCase())))){
return true;
}
return false;
};
dojo.validate.isValidCreditCardNumber=function(_3,_4){
if(typeof _3!="string"){
_3=String(_3);
}
_3=_3.replace(/[- ]/g,"");
var _5=[];
var _6={"mc":"5[1-5][0-9]{14}","ec":"5[1-5][0-9]{14}","vi":"4([0-9]{12}|[0-9]{15})","ax":"3[47][0-9]{13}","dc":"3(0[0-5][0-9]{11}|[68][0-9]{12})","bl":"3(0[0-5][0-9]{11}|[68][0-9]{12})","di":"6011[0-9]{12}","jcb":"(3[0-9]{15}|(2131|1800)[0-9]{11})","er":"2(014|149)[0-9]{11}"};
if(_4&&dojo.lang.has(_6,_4.toLowerCase())){
return Boolean(_3.match(_6[_4.toLowerCase()]));
}else{
for(var p in _6){
if(_3.match("^"+_6[p]+"$")!=null){
_5.push(p);
}
}
return (_5.length)?_5.join("|"):false;
}
};
dojo.validate.isValidCvv=function(_8,_9){
if(typeof _8!="string"){
_8=String(_8);
}
var _a;
switch(_9.toLowerCase()){
case "mc":
case "ec":
case "vi":
case "di":
_a="###";
break;
case "ax":
_a="####";
break;
default:
return false;
}
var _b={format:_a};
if((_8.length==_a.length)&&(dojo.validate.isNumberFormat(_8,_b))){
return true;
}
return false;
};