如何使用JavaScript验证信用卡号
How to validate a Credit Card Number with JavaScript
我正在尝试通过javascript函数验证信用卡号。我正在通过html表单进行输入,并希望在onblur事件中使用它进行验证。我想检查输入值是一个数字,然后是卡片类型,然后是luhn算法,但我现在还无法编写脚本。
下面是我的代码:
function allnumeric()
{
var inputtxt = document.form1.inputtxt;
var numbers = /^[0-9]+$/;
if(inputtxt.value.match(numbers))
{
if(visa(inputtxt))
{
if(function luhn(inputtxt))
{
return true;
}
else
{
return false;
}
}
else if (function mastercard(inputtxt))
{
if(function luhn(inputtxt))
{
return true;
}
else
{
return false;
}
}
}
else
{
alert('Please enter your valid card number');
inputtxt.focus();
return false;
}
function visa(inputtxt)
{
var cardno = /^(?:4[0-9]{12}(?:[0-9]{3})?)$/;
if(inputtxt.value.match(cardno))
{
return true;
}
else
{
alert("Not a valid Visa credit card number!");
return false;
}
}
function mastercard(inputtxt)
{
var cardno = /^(?:5[1-5][0-9]{14})$/;
if(inputtxt.value.match(cardno))
{
return true;
}
else
{
alert("Not a valid Mastercard number!");
return false;
}
function luhn(inputtxt)
{
/* Luhn check */
var cc_sum = 0;
var parsedCC;
var cclen = inputtxt.length;
for (i=cclen-1; i>=0; i--) {
var charati = inputtxt[i] + '';
parsedCC = parseInt(charati);
var oddeven = cclen-1 - i;
cc_sum += (oddeven%2 == 0) ? parsedCC :
(parsedCC > 4) ? parsedCC * 2 % 10 + 1 :
parsedCC * 2;
}
var checkvalid = ((cc_sum % 10) == 0) ? true : false;
return checkvalid;
}
我不建议为每种类型的信用卡创建函数。如果对信用卡格式进行更改,引入新卡等,这将是一场噩梦。
除非你构建了一个信用卡验证插件,否则信用卡验证格式的确切细节对你来说应该是抽象的。让其他人担心:)
jQuery验证插件有一个信用卡验证方法,我建议您使用。
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用jquery验证信用卡
- regex表达式不适用于验证信用卡到期信息
- 如何使用 Javascript 验证信用卡到期日期
- JavaScript-信用卡16位验证,并且必须是无效的数字
- 可以'我无法通过JavaScript信用卡验证找出我的语法错误
- 信用卡日期验证相对于当前日期PHP JavaScript
- 如何使用javascript验证信用卡过期日期(mm-yy,必须不过期比当前月份和年)
- 为什么我的信用卡验证不起作用?
- 验证信用卡号码和选中的单选按钮javascript
- Jquery中的信用卡过期日期验证
- AngularJS -信用卡过期日期格式来验证表单
- 在输入文本框中的Asp.net掩码信用卡号码,然后验证和处理信用卡号码
- 如何使用JavaScript验证信用卡号
- 如何验证信用卡号
- 信用卡验证问题
- 在HTML中验证信用卡过期日期
- 信用卡的客户端验证