テキスト入力を検証しようとしています。テキストフィールドにスペースがあると失敗することに気付きました。
validates_format_of :role, :with => /\A[a-zA-Z]+\z/, :message => "field should only have letters"
スペースを許可するには何を変更する必要がありますか? ありがとう
アップデート:
テキストフィールドに特殊文字を許可する必要があるため、質問を数字以外に変更しました。
テキスト入力を検証しようとしています。テキストフィールドにスペースがあると失敗することに気付きました。
validates_format_of :role, :with => /\A[a-zA-Z]+\z/, :message => "field should only have letters"
スペースを許可するには何を変更する必要がありますか? ありがとう
アップデート:
テキストフィールドに特殊文字を許可する必要があるため、質問を数字以外に変更しました。
一致させる文字にスペースを追加するだけです (現時点ではa-z
とA-Z
)。したがって
/\A[a-zA-Z ]+\Z/
は任意の空白文字 (タブと改行を含む)\s
に一致することに注意してください。
アップデート
^
数字以外のすべてを許可するには、角括弧の先頭にキャレットを置くことによって作成される「否定文字クラス」を使用できます。
/\A[^0-9]+\Z/
または、\d
(「数字」の場合)は と同等であるため[0-9]
、
/\A[^\d]+\Z/
Ruby 正規表現は\s
空白文字としてサポートしています。したがって、それをキャラクタークラスに追加できるはずです。
:with => /\A[a-zA-Z\s]+\z/
証拠:
/\A[a-zA-Z\s]+\z/ =~ 'hello world' #=> true
/\A[a-zA-Z]+\z/ =~ 'hello world' #=> false