使用jquery验证信用卡
Validate credit card by using jquery
如何使用jquery/javascript验证信用卡/借记卡?
我已经尝试过使用Luhn算法。
function checkLuhn(input) {
var sum = 0;
var numdigits = input.length;
var parity = numdigits % 2;
for(var i=0; i < numdigits; i++) {
var digit = parseInt(input.charAt(i))
if(i % 2 == parity) digit *= 2;
if(digit > 9)
digit -= 9;
sum += digit;
}
return (sum % 10) == 0;
}
你有什么好的/更简单的方法吗?
提前感谢
您可以使用jQuery Mask插件首先防止用户键入错误的值
$('#debit').mask('0000 0000 0000 0000');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://igorescobar.github.io/jQuery-Mask-Plugin/js/jquery.mask.min.js"></script>
<input type="text" id="debit">
这就是我使用Luhn算法和卡号长度的方法(我们只支持16位的特定卡):
// Luhn-algorithm check
function checkCardNumber(number) {
var sumTable = [
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[0, 2, 4, 6, 8, 1, 3, 5, 7, 9]
],
sum = 0,
flip = 0,
i;
for (i = number.length - 1; i >= 0; i--) {
sum += sumTable[flip++ & 0x1][parseInt(number.charAt(i), 10)];
}
return sum % 10 === 0;
}
// Check if the VISA card input is valid
var regCardNo = (opts.cardData ? /^[0-9]{6}['*]{6}[0-9]{4}$/ : /^[0-9]{16}$/),
regMonth = /^[0]{1}[1-9]{1}$|^[1]{1}[0-2]{1}$/,
regYear = /^[0]{1}[1-9]{1}$|^[1-9]{1}[0-9]{1}$/,
regCvc = /^[0-9]{3}$/,
cardNo = cardNumberInput.val(),
month = monthInput.val(),
year = yearInput.val(),
cvc = cvcInput.val();
if(regCardNo.test(cardNo) && regMonth.test(month) && regYear.test(year) && regCvc.test(cvc) && checkCardNumber(cardNo)) {
payButton.prop("disabled", false);
return true;
} else {
payButton.prop("disabled", true);
return false;
}
所有输入变量都是jQuery elems(它们没有在这个代码片段中定义)
请注意,opts.cardData会检查您是否有一个预填充的卡号(从数据库加载),然后检查一个屏蔽号码(例如123456******1234),否则会检查一个您自己添加到表单中的全长号码。
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用jquery验证信用卡
- regex表达式不适用于验证信用卡到期信息
- 如何使用 Javascript 验证信用卡到期日期
- JavaScript-信用卡16位验证,并且必须是无效的数字
- 可以'我无法通过JavaScript信用卡验证找出我的语法错误
- 信用卡日期验证相对于当前日期PHP JavaScript
- 如何使用javascript验证信用卡过期日期(mm-yy,必须不过期比当前月份和年)
- 为什么我的信用卡验证不起作用?
- 验证信用卡号码和选中的单选按钮javascript
- Jquery中的信用卡过期日期验证
- AngularJS -信用卡过期日期格式来验证表单
- 在输入文本框中的Asp.net掩码信用卡号码,然后验证和处理信用卡号码
- 如何使用JavaScript验证信用卡号
- 如何验证信用卡号
- 信用卡验证问题
- 在HTML中验证信用卡过期日期
- 信用卡的客户端验证