[RUBY] Rails: capturez les expressions régulières dans les e-mails!

Ceci est une continuation de l'article précédent .

Après avoir défini la validation dans les colonnes nom et e-mail, j'aimerais utiliser une expression régulière pour déterminer s'il s'agit d'une adresse e-mail valide ([email protected], etc.), mais Ruby reference , vous risquez de vous noyer dans une énorme quantité d'informations. .. .. Donc, cette fois, j'ai décidé d'enquêter et d'utiliser uniquement ce qui est nécessaire pour déterminer si l'e-mail est valide.

De la conclusion, voici l'expression régulière utilisée cette fois.

/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i

En ce qui concerne les expressions régulières, le tutoriel Rails est plus facile à comprendre que la référence Ruby. C'était. Ce qui suit est un extrait du didacticiel Rails, mais il semble que vous puissiez le comprendre en regardant cela.

Expressions régulières sens
/\A[\w+-.]+@[a-z\d-.]+.[a-z]+\z/i (Expression régulière complète)
/ Indique le début d'une expression régulière
\A Le début de la chaîne
[\w+-.]+ Alphabet, soulignement(_),plus(+),trait d'union(-),Point(.)Répéter au moins un caractère
@ Atmark
[a-z\d-.]+ Répétez au moins une lettre de lettres minuscules, de chiffres, de tirets ou de points
. Point
[a-z]+ Répétez au moins une lettre minuscule
\z Fin de chaîne
/ Indique la fin d'une expression régulière
i Option Ignorer la casse

Vous pouvez également utiliser Rubular pour rechercher facilement les expressions régulières. C'est pratique!

Ajoutez ensuite cette expression régulière à la validation créée dans article précédent . Pour vérifier le format. .. ..

validates :email, format: { with: /<regular expression>/ }

Puisqu'il est dit que l'option format est utilisée de cette manière, ajoutez une expression régulière à la place de «expression régulière». app/models/user.rb

class User < ApplicationRecord
  validates :name,  presence: true, length: { maximum: 20 }
  validates :email, presence: true, length: { maximum: 300 }, format: { with: /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i }
end

Quand j'ai essayé de m'inscrire en tapant l'email: "ruby" dans la console Rails, j'ai eu une erreur car cela ne ressemblait pas à [email protected]. C'est très pratique si vous maîtrisez les expressions régulières!

> user = User.create(name: "ruby", email: "ruby")
   (0.2ms)  BEGIN
   (0.3ms)  ROLLBACK
 => #<User id: nil, name: "ruby", email: "ruby", created_at: nil, updated_at: nil>
> user.errors.messages
=> {:email=>["is invalid"]}

Recommended Posts

Rails: capturez les expressions régulières dans les e-mails!
^, $ dans l'expression régulière Rails
À propos des expressions régulières dans Ruby
Expressions régulières
Group_by dans Rails
Faire correspondre les adresses IP à l'aide d'expressions régulières en Java
À propos de l'expression régulière utilisée dans la méthode ruby sub
Association de modèles dans Rails
Ajout de colonnes dans les rails
Désactiver les turbolinks dans les rails
Notes sur les expressions régulières
Utiliser des images avec des rails
Comprendre la migration dans les rails
Diviser routes.rb dans Rails6
Remarques sur l'utilisation des expressions régulières en Java
Markdown implémenté dans Rails
Gestion du début et de la fin de ligne dans les expressions régulières dans Ruby
[Rails] Obtenir UserAgent sur le contrôleur
Implémenter la fonction d'application dans Rails
Transaction déclarative dans Rails #ginzarb
Japaneseize en utilisant i18n avec Rails
[Java] Résumé des expressions régulières
Implémenter l'authentification LTI dans Rails
Gemme souvent utilisée dans les rails
Afficher le calendrier mensuel dans Rails
Utilisez plusieurs cases à cocher dans Rails6!
Apprenez les expressions régulières petit à petit ①