2013-02-21 135 views
3

我需要檢查頁面上的輸入字段是否包含字符。jquery檢查輸入.val()是否包含某些字符

這是非常基本的電子郵件地址驗證,所以我只想檢查文本是否爲空,並且包含@.字符。

我一直是這樣的:

if (($("." + parentname.attr("class") + " #email").val().contains("@")) && ($("." + parentname.attr("class") + " #email").val().contains("."))) 
{ 
    email = 1; 
} 

假設[email protected]一個值,該代碼會拋出以下錯誤:

Object [email protected] has no method 'contains'

所以我做了一些研究和發現。載適用於DOM對象,不建議嘗試此操作的字符串:

if (($("." + parentname.attr("class") + " #email").val().IndexOf("@") != -1) && ($("." + parentname.attr("class") + " #email").val().IndexOf(".") != -1)) 
{ 
    email = 1; 
} 

W HICH導致類似的錯誤:

Object [email protected] has no method 'IndexOf'

我基本上的想法在這裏特別是考慮到下面的代碼工作,我希望它在另一個網站我做:

if ($("#contact-email").val().contains("yahoo.com")) { 
    $(".errmsg").text("Domain yahoo.com has been banned due to excessive spam, please use another domain."); 
} 

能任何人都可以提出我可以嘗試的其他任何事情,或者更好的是,如何正確地做到這一點

+4

這是'indexOf',謹慎的資本。 – Aioros 2013-02-21 09:52:55

回答

3

indexOf不在開始時使用資本I。試試這個:

if (($("." + parentname.attr("class") + " #email").val().indexOf("@") != -1) && ($("." + parentname.attr("class") + " #email").val().indexOf(".") != -1)) 
{ 
    email = 1; 
} 
+0

當我忽略這樣簡單的事情時,我真的很討厭它......也許是因爲我很着急:/非常感謝! – Ortund 2013-02-21 10:09:09

+0

我們都會不時地做,不用擔心:) – toomanyredirects 2013-02-21 10:11:12

2

我有一個函數來驗證電子郵件中的Javascript:

function isEmail(emailV){ 
    if(emailV != null && emailV != undefined){ 
     var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); 
     return pattern.test(emailV);  
    } 
    else{ 
     return false; 
    } 

} 

它驗證所有郵件允許字符,而您只需要調用它是這樣的:

if(isEmail($("#contact-email").val())){ 
    //EMAIL IS VALID 
} 
else{ 
    //EMAIL IS NOT VALID 
} 
0

的方法是indexOf而不是IndexOf。如果你糾正你的代碼,它應該像一個魅力:)。

試試這個代碼片段:

if (($("." + parentname.attr("class") + " #email").val().indexOf("@") !== -1) 
    && ($("." + parentname.attr("class") + " #email").val().indexOf(".") !== -1)) 
{ 
    email = 1; 
} 
0

LIVE DEMO

// VISUALIZE ERRORS 
function showError(el, err){ 
    return err ? $(el).addClass('error') : $(el).removeClass('error'); 
} 

// REGEXES 
var isValidEmailAddress = function(emailAddress) { 
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); 
    return pattern.test(emailAddress); 
}; 

// "EMAIL" 
function validate_email(el, val){ 
    var err = !isValidEmailAddress(val); 
    showError(el, err); 
} 

$('#email').on('input', function(){ 
    validate_email(this, this.value); 
}); 
相關問題