Jquery找到信用卡类型

时间:2011-03-07 02:48:08

标签: jquery

我发现这个简单的函数可以返回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';
 }

谢谢!

5 个答案:

答案 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)

答案 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,万事达卡等