我发现这个简单的函数可以返回4种最常见的信用卡类型。
作为jQuery的新用户,当用户在输入字段中输入信用卡号时,我可以用什么jQuery插件显示信用卡类型?
function creditCardTypeFromNumber(num) {
// first, sanitize the number by removing all non-digit characters.
num = num.replace(/[^\d]/g,'');
// now test the number against some regexes to figure out the card type.
if (num.match(/^5[1-5]\d{14}$/)) {
return 'MasterCard';
} else if (num.match(/^4\d{15}/) || num.match(/^4\d{12}/)) {
return 'Visa';
} else if (num.match(/^3[47]\d{13}/)) {
return 'AmEx';
} else if (num.match(/^6011\d{12}/)) {
return 'Discover';
}
return 'UNKNOWN';
}
谢谢!
答案 0 :(得分:4)
$('#someTextBox').change(function() {
$('#someOutput').text(creditCardTypeFromNumber($(this).val()));
});
这将输出一些元素id="someOutput"
,该文本框的结果会在用户更改元素id="someTextBox"
中的文本时触发。
答案 1 :(得分:1)
http://www.ihwy.com/labs/jquery-validate-credit-card-extension.aspx
http://docs.jquery.com/Plugins/Validation/Methods/creditcard
默认情况下,插件在您键入时可能没有卡验证。要进行实时验证,可以在输入字段上绑定一个简单的keyup(),以便在每次击键后进行验证。
答案 2 :(得分:1)
jQuery信用卡类型检测器插件https://github.com/christianreed/Credit-Card-Type-Detector
答案 3 :(得分:0)
此外,仅供参考,this thread (link)上的答案对其他卡类型有一些正则表达式,以及对信用卡号码的一个很棒的解释。
这是一个仅在输入至少6位数字后才触发的功能(用于识别卡片类型的功能):
$('#CardNumber').keyup(function(){
if($(this).val().length >= 6){
cardType = creditCardTypeFromNumber($(this).val());
}
});
答案 4 :(得分:0)
使用免费的BIN API服务,例如https://tripayments.com/bins/。提交前6个,它将提供“DetailCardProduct”,即VISA,万事达卡等