【问题标题】:regex ruby in meta keywords with limit and special characters带有限制和特殊字符的元关键字中的正则表达式红宝石
【发布时间】:2012-05-05 12:01:43
【问题描述】:

我有这个 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 个条件添加到此正则表达式中? 谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

    您可以这样进行验证:

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

    或者使用validates 方法

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

    两者都会做同样的事情

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

    【讨论】:

    • 非常感谢@rogeliog。您的正则表达式解决了第一个问题将关键字限制为 4 个关键字。但我有第二个字符问题ñáéíóú。我怎样才能添加这个字符?非常感谢
    • 您希望允许所有可打印字符 áéíóú*aãaä 吗?像除了“昏迷”之外的一切?你可以这样做/^(([^,]+),){0,3}([^,]+)$/
    • 完善它的伟大!它确实工作正常:D。非常感谢!
    • 很好,我很高兴它成功了。我编辑了答案只是为了显示新的正则表达式
    猜你喜欢
    • 1970-01-01
    • 2021-11-22
    • 2012-11-06
    • 1970-01-01
    • 2016-01-20
    • 2011-02-20
    • 2022-06-23
    • 1970-01-01
    相关资源
    最近更新 更多