[英]Update on Devise regex for Email validation
我目前正在使用設計正則表達式:
/\\A[^@\\s]+@[^@\\s]+\\z/
這是簡單和排序。 但是,它不會像example@example..com
那樣過濾電子郵件。
另一種方法是URI::MailTo::EMAIL_REGEXP :
/\\A[a-zA-Z0-9.!\\#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\\z/
這將過濾有效域,如hans@über.com
。
我不擅長正則表達式,但是有沒有更好的東西或者我如何在第一個使用 Devise 添加雙點驗證。
您可以將您的正則表達式重構為
/\A[^@\s]+@[^@.\s]+(?:\.[^@.\s]+)*\z/ # If you want to allow name@domain
/\A[^@\s]+@[^@.\s]+(?:\.[^@.\s]+)+\z/ # If you want to require at least one dot after @
這里,
\\A
- 字符串的開始[^@\\s]+
- 匹配 1 個或多個字符( @
和空格以外的字符)的否定字符類@
- 一個@
字符[^@.\\s]+
- 除@
、 .
之外的 1 個或多個字符.
和空格(?:\\.[^@.\\s]+)*
- 0 次或多次出現(或 1 次或更多,如果在末尾使用+
)
\\.
- 一個點[^@.\\s]+
- 除@
、 .
之外的 1 個或多個字符.
和空格\\z
- 字符串的結尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.