具有限制和特殊字符的元关键字中的正则表达式ruby

时间:2012-05-05 12:01:43

标签: ruby-on-rails ruby regex ruby-on-rails-3

我有这个ruby正则表达式用于验证用户输入用逗号分隔的元关键字。

validates_format_of :tags, :with => /^\s*[A-Za-z0-9]+(\s*,\s*[A-Za-z0-9]+)*\s*$/u

我想为此正则表达式添加更多2个条件:

  • 将关键字限制为4个关键字。

  • 使用ñáéíóú

  • 添加p{L}\s\p{N}等西班牙字符

如何将此2个条件添加到此正则表达式中? 谢谢

1 个答案:

答案 0 :(得分:1)

嘿,我觉得这个正则表达式会起作用。

/^(([^,]+),){0,3}([^,]+)$/

您可以像这样进行验证:

validates_format_of :tags, :with => /^(([^,]+),){0,3}([^,]+)$/

或使用validates方法

validates :tags, format: {with: /^(([^,]+),){0,3}([^,]+)$/} 

两者都会做同样的

注意:您应该检查Rubular,它是一个很棒的Ruby正则表达式在线编辑器