Dies ist eine Fortsetzung des vorherigen Artikels .
Nach dem Festlegen der Validierung in den Spalten Name und E-Mail möchte ich einen regulären Ausdruck verwenden, um festzustellen, ob es sich um eine gültige E-Mail-Adresse handelt ([email protected] usw.), aber Ruby-Referenz ansehen, ertrinken Sie möglicherweise in einer großen Menge an Informationen. .. .. Deshalb habe ich mich dieses Mal entschlossen, nur das zu untersuchen und zu verwenden, was erforderlich ist, um festzustellen, ob E-Mails gültig sind.
Aus der Schlussfolgerung folgt hier der reguläre Ausdruck, der diesmal verwendet wird.
/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
In Bezug auf reguläre Ausdrücke ist das Rails-Tutorial leichter zu verstehen als die Ruby-Referenz. Es war. Das Folgende ist ein Auszug aus dem Rails-Tutorial, aber es scheint, dass Sie es verstehen können, wenn Sie sich das ansehen.
Reguläre Ausdrücke | Bedeutung |
---|---|
/\A[\w+-.]+@[a-z\d-.]+.[a-z]+\z/i | (Vollständiger regulärer Ausdruck) |
/ | Zeigt den Beginn eines regulären Ausdrucks an |
\A | Der Anfang der Zeichenfolge |
[\w+-.]+ | Alphabet, Unterstrich(_),Plus(+),Bindestrich(-),Punkt(.)Wiederholen Sie mindestens ein Zeichen |
@ | Atmark |
[a-z\d-.]+ | Wiederholen Sie mindestens einen Buchstaben mit niedrigeren Buchstaben, Zahlen, Bindestrichen oder Punkten |
. | Punkt |
[a-z]+ | Wiederholen Sie mindestens einen Kleinbuchstaben |
\z | Ende der Zeichenfolge |
/ | Zeigt das Ende eines regulären Ausdrucks an |
i | Falloption ignorieren |
Sie können auch Rubular verwenden, um reguläre Ausdrücke einfach zu überprüfen. Das ist praktisch!
Fügen Sie dann diesen regulären Ausdruck zur Validierung hinzu, die im vorherigen Artikel erstellt wurde . So überprüfen Sie das Format. .. ..
validates :email, format: { with: /<regular expression>/ }
Da die Formatoption auf diese Weise verwendet wird, fügen Sie anstelle von "regulärer Ausdruck" einen regulären Ausdruck hinzu. 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
Als ich versuchte, mich durch Eingabe von email: "ruby" in der Rails-Konsole zu registrieren, wurde eine Fehlermeldung angezeigt, da sie nicht wie [email protected] aussah. Es ist sehr praktisch, wenn Sie reguläre Ausdrücke beherrschen!
> 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