2015-06-04 36 views
-1

**編輯** 正則表達式不接受小寫。添加我做了詭計。 此外,爲了使正則表達式的過去部分能夠正常工作,我必須再次避開\ out。jQuery正則表達式不觸發if語句

工作之一jQuery是如下:

var email = new RegExp('^[A-Z0-9._%+-][email protected][A-z0-9.-]+\\.[A-Z]{2,4}$', 'i'); 

我想驗證與一個正則表達式的電子郵件。

在我當前的代碼中,我發現它正在執行該函數,但即使正則表達式匹配也不會進入if語句。

$('#email').keyup(function() { 
    var INPUT = $(this).val(); 
    var email = new RegExp('^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$'); 
    if (email.test(INPUT)) { 
     console.log('inside the if'); 
    } 
    console.log('Outside the if'); 
}); 
+1

@AvinashRaj是不是反斜槓的'.'? – CodingIntrigue

+3

難道你不希望這是不區分大小寫的嗎? 'new RegExp('^ [A-Z0-9 ._%+ - ] + @ [A-Z0-9 .-] + \。[AZ] {2,4} $','i')' – CodingIntrigue

+0

It聽起來不太可能是正則表達式匹配,如果它不進入if子句。如前所述,您測試的電子郵件地址似乎不太可能只包含大寫字母。 –

回答

2

正則表達式似乎罰款,只需要設置不區分大小寫的標誌:

$('#email').keyup(function() { 
    var INPUT = $(this).val(); 
    var email = new RegExp('^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$', 'i'); 
    if (email.test(INPUT)) { 
     console.log('inside the if'); 
    } 
    console.log('Outside the if'); 
}); 
+1

讓我們知道,我不喜歡變量'INPUT'的命名。尤其是當'電子郵件'是小寫:) – CodingIntrigue

+0

這樣做的伎倆,謝謝! –