使用parsleyJS进行信用卡验证

时间:2014-05-20 15:42:58

标签: parsley.js

在版本1.x中,似乎通过data-luhn =" true"在额外内容中进行了信用卡验证。

在2.0版中,是否有类似的方法来检查信用卡的有效性?

3 个答案:

答案 0 :(得分:0)

目前没有。在Parsley2 repo中有一个https://github.com/guillaumepotier/Parsley.js/tree/master/src/extra/validator目录,其中有特殊或非常用的验证器。如果您想将它与Parsley2一起使用并将其提供给社区,则应将v1 luhn验证器移植到此处。

最佳

答案 1 :(得分:0)

截至2014年12月,对Lars验证的支持已经恢复到Parsley。

按照以下步骤添加Parsley的Luhn支持:

  • 从Parsley github下载luhn.js
  • 在您的代码之前加入包括parsley.js / parsley.min.js
  • <?php $i = 0; foreach($users as $user) { $i++; echo'<tr> <td>'.$i.'</td> <td>'.$user['firstname'].'</td> </tr>'; ?> 添加到信用卡data-parsley-luhn="true"

答案 2 :(得分:0)

在代码中的某处添加以下代码:

if (typeof Parsley !== 'undefined') {
    //add the custom message:
    Parsley.addMessages('lang', {
        luhn: 'Please provide valid credit card'
    });

    //set the locale:
    Parsley.setLocale('lang');

    //add the credit card validator:
    Parsley.addValidator('luhn',
        function (value) {
            val = value.replace(/[ -]/g, '');
            var digit, n, sum, _j, _len1, _ref2;
            sum = 0;
            _ref2 = val.split('').reverse();
            for (n = _j = 0, _len1 = _ref2.length; _j < _len1; n = ++_j) {
                digit = _ref2[n];
                digit = +digit;
                if (n % 2) {
                    digit *= 2;
                    if (digit < 10) {
                        sum += digit;
                    } else {
                        sum += digit - 9;
                    }
                } else {
                    sum += digit;
                }
            }
            return sum % 10 === 0;
        }, 32);
}

提供输入的属性: data-parsley-luhn =&#34; true&#34;

<input id="creditCardNumber" value="" type="text" autocomplete="off" style="direction:rtl;" data-parsley-type="number" data-parsley-required="true" data-parsley-luhn="true"/>