我已经编写了以下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;
}
答案 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