#概要
今回は、正規表現を使用したバリデーションの実装方法についてまとめていきます。
最初に、バリデーションと正規表現についてざっくり述べておきます。
##バリデーション
データを保存する際にバリデーションをかけることによって、無効なデータを弾いてくれます。
空のデータを登録できなくしたり、文字列に含まれなきゃいけない文字を指定したり、文字数制限をしたり、、、
様々なバリデーションがあります。
代表的なものとして、nicknameを入力する際に空にならないようにバリデーションをかけてみましょう。
---省略---
validates :nickname, presence: true
---省略---
こんな感じでそれぞれの入力項目にバリデーションをかけます。
##正規表現
正規表現とは、記号と文字列を組み合わせた構文のことで、検索対象となる文から指定した文字列パターンを抽出することができます。
よく使うものだと、
\A...文字列の先頭にマッチする
\z...文字列の末尾にマッチする
のような感じで他にもいくつかあります。
検索すればたくさんでてくるので覚える必要はなさそうです。
##正規表現を使用したバリデーション
今回特にまとめておきたいのが、正規表現を使用したバリデーションです。
具体的には、パスワードに入力するデータを半角英数字にするというバリデーションを実装します。
ポイントは、正規表現を変数に代入してあげて、それをバリデーションに組み込んであげるという感じで書いていきます。
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文字以上であること
・パスワードは半角英数字であること
のバリデーションが組まれています。