1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

正規表現を使用するバリデーションの実装

Last updated at Posted at 2020-08-26

#概要
今回は、正規表現を使用したバリデーションの実装方法についてまとめていきます。

最初に、バリデーションと正規表現についてざっくり述べておきます。

##バリデーション
データを保存する際にバリデーションをかけることによって、無効なデータを弾いてくれます。
空のデータを登録できなくしたり、文字列に含まれなきゃいけない文字を指定したり、文字数制限をしたり、、、
様々なバリデーションがあります。

代表的なものとして、nicknameを入力する際に空にならないようにバリデーションをかけてみましょう。

models/user.rb
---省略---
validates :nickname, presence: true
---省略---

こんな感じでそれぞれの入力項目にバリデーションをかけます。

##正規表現
正規表現とは、記号と文字列を組み合わせた構文のことで、検索対象となる文から指定した文字列パターンを抽出することができます。

よく使うものだと、
\A...文字列の先頭にマッチする
\z...文字列の末尾にマッチする
のような感じで他にもいくつかあります。

検索すればたくさんでてくるので覚える必要はなさそうです。

##正規表現を使用したバリデーション
今回特にまとめておきたいのが、正規表現を使用したバリデーションです。

具体的には、パスワードに入力するデータを半角英数字にするというバリデーションを実装します。

ポイントは、正規表現を変数に代入してあげて、それをバリデーションに組み込んであげるという感じで書いていきます。

models/user.rb
  validates :password, presence: true
  validates :password, length: { minimum: 6 }
  VALID_PASSWORD_REGIX = /\A[a-z0-9]+\z/i
  validates :password, format: { with: VALID_PASSWORD_REGIX }

上から順に
・パスワードが必須であること
・パスワードが6文字以上であること
・パスワードは半角英数字であること
のバリデーションが組まれています。

1
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?