如何在我的模型中验证:title
,以便只接受字母a-z、A-Z和0-9?
validates :title, :format => { with: REGULAR EXPRESSION , :message => 'no special characters, only letters and numbers' }
正则表达式应该是什么?
如何在我的模型中验证:title
,以便只接受字母a-z、A-Z和0-9?
validates :title, :format => { with: REGULAR EXPRESSION , :message => 'no special characters, only letters and numbers' }
/^[a-zA-Z0-9]*$/
基本上您定义了三个允许的符号范围,首先是a-z,然后是A-Z,最后是0-9。+
而不是*
。或者,如果您想要超过三个字符,请使用{3,}
而不是星号。/\w/
允许下划线。 - Lukas_Skywalker/[^\W_]+/
。 - Santhosh/\A[a-zA-Z0-9]*\z/
。如果您仅使用 ^...$
,它将只验证字符串的第一行,例如 "asdffs\n$&" =~ /^[a-zA-Z0-9]*$/
将返回 0
并且条件将通过。使用 \A...\z
后,它看起来像 "asdffs\n&" =~ /\A[a-zA-Z0-9]*\z/
并返回 nil
。因此,除非您只想测试字符串的第一行,请不要使用 ^...$
。 - edariedl