首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery验证器信用卡号码+类型匹配

问jQuery验证器信用卡号码+类型匹配
EN

Stack Overflow用户
提问于 2012-12-18 04:13:14
回答 2查看 19.3K关注 0票数 5

尝试添加一个customer jQuery验证器方法,该方法基本上检查卡类型和信用卡号的有效性。

即。如果类型是MasterCard,如果卡号不是以5开头,则无效;如果类型是Visa卡,如果卡号不是以4开头,则无效。我的公司只收取MC或Visa的费用,所以不需要其他的。

代码语言:javascript
复制
$.validator.addMethod("CCNumber", function(value, element, param) {
  if (param == "MasterCard") {
    return value.substring(0,1) != 5;   
  }
  else if (param == "Visa") {
    return value.substring(0,1) != 4;   
  }
});

在这里调用它:

代码语言:javascript
复制
cardnumber: {
  required: true,
  creditcard: true,
  minlength: 13,
  maxlength: 16,
  digits: true,
  CCNumber: function(){ return $('#cardtype').val(); }
},

信息是..。

代码语言:javascript
复制
cardnumber: {
  required: "Please enter a valid credit card number",
  minlength: "Please enter a valid credit card number",
  maxlength: "Please enter a valid credit card number",
  digits: "Your credit card number cannot contain spaces.",
  CCNumber: "WRONG"
},

最后,HTML:

代码语言:javascript
复制
<select name="cardtype" id="cardtype">
  <option value="MasterCard">MasterCard</option>
  <option value="Visa">Visa</option>
</select>

我以前从未编写过jQuery方法,但这里什么都没有发生。我不完全确定我做错了什么,因为我尝试过其他方法,但没有找到任何东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-18 04:37:15

对于这样的事情,jQuery Validation plugin已经有了其他可用的方法。

以下是"Additional Methods" file中使用的默认方法,但随后仅对Visa卡和万事达卡进行了向下编辑。

代码语言:javascript
复制
jQuery.validator.addMethod("creditcardtypes", function(value, element, param) {
    if (/[^0-9-]+/.test(value)) {
        return false;
    }

    value = value.replace(/\D/g, "");

    var validTypes = 0x0000;

    if (param.mastercard)
        validTypes |= 0x0001;
    if (param.visa)
        validTypes |= 0x0002;

    if (validTypes & 0x0001 && /^(5[12345])/.test(value)) { //mastercard
        return value.length == 16;
    }
    if (validTypes & 0x0002 && /^(4)/.test(value)) { //visa
        return value.length == 16;
    }
    return false;
}, "Please enter a valid credit card number.");
票数 3
EN

Stack Overflow用户

发布于 2012-12-18 04:27:12

sub()不是javascript函数。您要查找的函数是substring()。不过,更简单的方法是charAt(0),因为只需要第一个字符。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13921456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档