[英]Email validation Javascript RegExp
借助此RegExp,我可以輕松檢查電子郵件是否有效:
RegExp(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/);
但是,對於這樣的地址,這只是返回true:
example@example.com
我也想接受:
*@example.com
我需要對RegExp應用哪些更改?
提前致謝
要從字面上回答您的問題,您可以“增強”您的正則表達式:
RegExp(/^([\w.*-]+@([\w-]+\.)+[\w-]{2,4})?$/);
但這是用於電子郵件驗證的可怕正則表達式。 正則表達式是錯誤的工具 。 您為什么堅持要這樣做呢 ?
檢查電子郵件地址不是那么簡單,請參閱。 RFC 822,秒6.1 。
可以在http://www.regular-expressions.info/email.html上找到大量的正則表達式,描述了RFC一致性和實用性之間的折衷。
有兩件事:接受*@foo.bar
:
var expression = /^([\w-\.*]+@([\w-]+\.)+[\w-]{2,4})?$/;//no need to pass it to the RegExp constructor
但是此表達式確實接受-@-.--
,但是正則表達式和電子郵件並不是一個很好的朋友。 但是根據您的表情,這是一個不太可靠的版本:
var expression = /^[\w-\.\d*]+@[\w\d]+(\.\w{2,4})$/;
不過,有一個表達式可以驗證網絡上某處的所有有效類型的電子郵件地址。 研究一下,看看為什么正則表達式驗證幾乎總是會排除有效輸入或太寬容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.