2014-01-08 147 views
-1

代碼沒有正確驗證值,當我放入一個簡單的數字時,它已經觸發了代碼。使用jquery進行信用卡驗證

$(".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」的值觸發正則表達式,但是當我把另一個值,它禁用正則表達式都在一起。

+2

它失敗的症狀是什麼?它是否崩潰,或者只是沒有做你想要/想的應該做的。 – zmbush

+0

如果你沒有使用jQuery驗證插件,請不要用[tag:jquery-validate]標記你的問題。 – Sparky

回答

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'); 
}