信用卡号码以1&长15位

时间:2016-09-22 05:59:17

标签: javascript jquery asp.net-mvc-3

我已经编写了以下jquery / javascript函数来验证一张15位数的信用卡&必须以digit1开头。 那么,我如何验证该数字将从数字1开始。

if ($("#ddlCreditCardType" + i).val() == 'TP') {
                if (!($("#txtCreditCardNo" + i).val().length == 15)) {
                    $("#err" + i).html('Credit Card Number should be 15 digit');
                    status = 0;
                }
                else {
                    $("#err" + i).html('');
                    status = 1;
                }

5 个答案:

答案 0 :(得分:2)

您可以获取该值的第一个字母,并将其与1进行比较:

if ($("#ddlCreditCardType" + i).val() == 'TP') {
    var value = $("#txtCreditCardNo" + i).val();
    if (value.length !== 15 || value[0] !== '1') {
        $("#err" + i).html('Credit Card Number should be 15 digit and start with 1');
        status = 0;
    }
}

答案 1 :(得分:0)

使用JavaScript的charAt函数,它允许您读取第一个字符。

所以在你的代码中你可以写:

if ($("#txtCreditCardNo" + i).val().charAt(0) == '1'){
// your code after validation
}

答案 2 :(得分:0)

如果您只需要支持最现代的浏览器,则可以执行以下操作

var ccNum = $("#txtCreditCardNo" + i).val();
if(ccNum.startsWith('1')){
    //Do something cause it starts with 1
}

如果您必须支持较旧的浏览器,则可以执行以下操作,该程序适用于较新版本和旧版浏览器:

var ccNum = $("#txtCreditCardNo" + i).val();
if(ccNum.split('')[0] == '1'){
    //Do something cause it starts with 1
}

还有其他选择,但其中任何一种都可行。

答案 3 :(得分:0)

您也可以使用正则表达式。

var c1='123456789012345';
var c2='234567890123456';
var regex=/^1\d{14}/; //regular expressions starting with '1' and the 14 digits at the end 
regex.exec(c1); //returns the c1
regex.exec(c2); //returns null

答案 4 :(得分:0)

建议使用正则表达式来验证信用卡。 检查这个表达式:

^1[0-9]{14}$

描述:

Options: case insensitive; ^ and $ match at line breaks

Assert position at the beginning of a line (at beginning of the string or after a line break character) «^»
Match the character “1” literally «1»
Match a single character in the range between “0” and “9” «[0-9]{14}»
   Exactly 14 times «{14}»
Assert position at the end of a line (at the end of the string or before a line break character) «$»

使用示例:

var credit = "123456789123456"; // lingth 15
alert(credit.match(/^1[0-9]{14}$/)); // will success

credit = "1234567891234567"; // lingth 16
alert(credit.match(/^1[0-9]{14}$/)); // will fail

credit = "5234567891234567"; // lingth 15, start with 5
alert(credit.match(/^1[0-9]{14}$/)); // will fail