Ruby on Rails:除了validates_format_of中的数字之外的任何东西

Jaz*_*azz 1 ruby regex ruby-on-rails

我正在尝试验证文本输入.我注意到,如果文本字段中有任何空格,它会失败.

validates_format_of :role, :with => /\A[a-zA-Z]+\z/, :message => "field should only have letters"
Run Code Online (Sandbox Code Playgroud)

我需要更改以允许空格?谢谢

更新:

将问题更改为除数字之外的任何内容,因为我需要在文本字段中允许特殊字符.

And*_*nes 5

只需为您匹配的字符添加空格(此刻a-zA-Z).于是

/\A[a-zA-Z ]+\Z/
Run Code Online (Sandbox Code Playgroud)

请注意,\s它将匹配任何空格字符(包括制表符和换行符).

更新

为了允许除数字之外的所有内容,您可以使用"否定字符类",这是通过^在方括号的开头放置插入符号来实现的:

/\A[^0-9]+\Z/
Run Code Online (Sandbox Code Playgroud)

或者,因为\d(对于"数字")相当于[0-9],

/\A[^\d]+\Z/
Run Code Online (Sandbox Code Playgroud)