1

我有这个 ruby​​ 正则表达式来验证用户是否输入了以逗号分隔的元关键字。

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

我想在这个正则表达式中再添加 2 个条件:

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

  • 添加西班牙语字符,例如ñáéíóúwithp{L}\s\p{N}

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

4

1 回答 1

1

嘿,我认为这个正则表达式可以解决问题。

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

您可以像这样进行验证:

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

或者用validates方法

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

两者都会做同样的事情

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

于 2012-05-17T00:05:52.060 回答