在用户点击提交之前,是否有人使用库或JavaScript代码段来验证信用卡的校验位?
在jQuery验证插件有一个方法来验证信用卡号码.
还有其他特定脚本:
JavaScript信用卡验证功能
信用卡验证
他们中的大多数使用Luhn算法.
可能OP甚至不再遵循这个主题,但这可能对其他人有帮助:
http://jquerycreditcardvalidator.com
它检查卡类型,验证其长度并使用Luhn算法检查mod 10.
您可以使用此代码段使用Luhn算法验证16位数的卡号:
function validateCardNumber(number) { var regex = new RegExp("^[0-9]{16}$"); if (!regex.test(number)) return false; return luhnCheck(number); } function luhnCheck(val) { var sum = 0; for (var i = 0; i < val.length; i++) { var intVal = parseInt(val.substr(i, 1)); if (i % 2 == 0) { intVal *= 2; if (intVal > 9) { intVal = 1 + (intVal % 10); } } sum += intVal; } return (sum % 10) == 0; }