我尝试这样做:
validates :name, :format => { :with => /^[a-zA-Z][a-zA-Z0-9 -']+$/ }
然而,它允许!同样。 我怎么能改变代码所以它只允许名字中的字母,数字,空格,连字符和撇号,并且它将以字母开头?
谢谢!
答案 0 :(得分:4)
你没有逃脱你的正则表达式中的-
:
^[a-zA-Z][a-zA-Z0-9 \-']+$
^ here
如果将-
放在字符类[]
内(两个characetrs之间),则必须使用转义字符(即\
)对其进行转义。否则它意味着一个范围。对于您的情况,它位于space
和'
之间。这意味着任何字符从space
(ascii值)到'
(ascii值)。不幸的是!
就在那个范围内。