dek*_*n88 1 ruby regex format validation ruby-on-rails
我正在尝试使用正则表达式验证 ruby 类中文本字段中的一串逗号分隔的单词。以下内容应该有效:
word
word, word, word
word,word,word
Run Code Online (Sandbox Code Playgroud)
并且以下内容应该是无效的:
word word word
Run Code Online (Sandbox Code Playgroud)
我以为这会起作用
/([a-z]+){1}(,\s*[a-z]+)*/i
Run Code Online (Sandbox Code Playgroud)
在 Rubular 上,它似乎是有效的,但是当我在类中进行如下验证时,它接受应该是无效的字符串。
@tag_regex = /([a-z]+){1}(,\s*[a-z]+)*/i
validates :tags,
:allow_blank => true,
:format => { :with => @tag_regex, :message => "Invalid tag format." }
Run Code Online (Sandbox Code Playgroud)
我不确定我的问题是否在于正则表达式或验证方法本身。任何帮助表示赞赏。
您忘记使用^(字符串的开头)和$(字符串的结尾)
所以,应该是
/^([a-z]+)(,\s*[a-z]+)*$/i
Run Code Online (Sandbox Code Playgroud)
如果没有^,$它将匹配字符串之间的任何位置^。如果使用,$则可以使其完全匹配
| 归档时间: |
|
| 查看次数: |
4043 次 |
| 最近记录: |