395 文字
2 分

今時のメールアドレス正規表現

概要#

  • メールアドレス入力フォームの検証に正規表現でチェックしています。
  • このたび、メールアドレスの検証に使っている正規表現が書かれている gem にて、メールアドレスの検証ロジックに大幅な変更が入ったので調査してみました。

背景#

実運用ではどうするか考える#

name_validation = "-\\p{L}\\d+._"
regex = /\A\s*([#{name_validation}]{1,64})@((?:[-\p{L}\d]+\.)+\p{L}{2,})\s*\z/i
User.all.select {|u| puts u.id unless u.email.match(regex) }
  • 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/

結論#

広く許容する場合は以下の正規表現。

[^\s]+@[^\s]+
今時のメールアドレス正規表現
https://blog.teraren.com/posts/qiita-20190409-3dfb1ddb6e155c44643b/
作者
Yuki Matsukura
公開日
2018-04-09
ライセンス
CC BY-NC-SA 4.0
この記事が役に立ったら
GitHub Sponsorsで応援できます

コメント