動かざることバグの如し

近づきたいよ 君の理想に

Railsバリデーションで全角カタカナ入力だけを許可する方法

環境

やりたいこと

全角カタカナのみを受け付けるバリデーションを実装したい。個人情報入力フォームの「ヤマダタロウ」みたいな。

コード

class User < ApplicationRecord
  validates :name, format: { 
    with: /\A[\p{katakana}ー-]+\z/, 
    message: "は全角カタカナのみで入力してください" 
  }
end

validates :name, format: { with: /\A[\p{katakana}ー-]+\z/, message: "は全角カタカナのみで入力してください" } で name 属性に対して、指定した正規表現にマッチするかどうかのバリデーションを設定している。

  • \A: 文字列の先頭
  • [\p{katakana}ー-]+: 全角カタカナ(\p{katakana})と長音記号(ー、-)が1文字以上続くパターン
  • \z: 文字列の末尾