代码没有正确验证值,当我输入一个简单的数字时,它已经触发了代码。
$(".validate-card-num").live('keypress', function() {
var ccNum = $(this).val();
//var visa = /^4[0-9]{12}([0-9]{3})?$/;
//var master = /^5[1-5]([0-9]{14})$/;
if(ccNum.test(/^4[0-9]{12}([0-9]{3})?$/)){
$("#img-visa").css("opacity","1");
$("#img-master").css("opacity","0.3");
}else if(ccNum.test(/^5[1-5]([0-9]{14})$/)){
$("#img-master").css("opacity","1");
$("#img-visa").css("opacity","0.3");
}else
$("#img-master, #img-visa").css("opacity","0.3")
});
例如我输入“5”值会触发正则表达式但是当我输入另一个值时它会一起禁用正则表达式。
答案 0 :(得分:2)
您没有正确使用.test()
功能。
此函数仅在RegExObject中可用,并且您在字符串上使用它。
你的代码应该是这样的:
var ccNum = "Test CC";
var visa = new RegExp("Paste Your Visa Pattern Here");
//Then do the check
if(visa.test(ccNum)){
console.log('visa card');
}else{
console.log('not visa card');
}