2015-10-18 173 views
3

我遇到了這個問題,我之前沒有注意。電子郵件的HTML5表單驗證

<label> Email Address </label> 
<input type="email" id="emailAddress" required placeholder='Email Address' /> 
<button type="submit" class="button primary small">Submit</button> 

在我的JS文件我檢查了使用checkValidity()

checkValidEmail: function(event){ 
    var emailAddress = $('#emailAddress'); 
    if(emailAddress[0].checkValidity()){ 
    console.log('Valid'); 
    } else{ 
    console.log('Not Valid'); 
    } 
} 


"keyup #emailAddress": "checkValidEmail" // KeyUp works as expected 

Output: 
    '[email protected]' // Valid 

我不明白這種行爲的驗證。據我所知,@ .com是輸入電子郵件的正則表達式。

請注意:我嘗試過在多個網站上使用表格,它顯示了相同的輸入。在上述情況下,我正在Chrome瀏覽器上執行此操作。

感謝您花時間回覆!

+1

並非所有瀏覽器都支持類型電子郵件。 * @ .com *不是正則表達式。如果是這樣,很多電子郵件地址都會失敗。 – RobG

+0

是的,這是一個類似的問題。但是這個答案在下面Maksym提供的表達方式中失敗了。哪一個是有效的電子郵件地址。如果你們還想把它標爲重複。會很樂意這樣做! –

回答

0

,閱讀

http://www.regular-expressions.info/email.html

注意,下方是100%有效,工作電子郵件地址:-)經常使用它來測試錯誤地實施的電子郵件驗證

[email protected] 

另一種選擇是檢查電子郵件地址域名是否有效。這樣做,你可以查詢DNS服務器的MX記錄(這一點指向負責接收傳入郵件的SMTP服務器)。你將需要服務器端代碼來做到這一點。

0

在HTML5如果你想使用正則表達式驗證可以驗證電子郵件這樣

<form> 
    <input type="email" placeholder="Enter your email"> 
    <input type="submit" value="Submit"> 
</form> 
+1

它與OP有什麼不同? – 2015-10-18 23:38:23