簡體   English   中英

更新設計正則表達式以進行電子郵件驗證

[英]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 - 字符串的結尾。

請參閱正則表達式 #1 演示正則表達式 #2 演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM