ruby-on-rails - 都柏林邮政编码的正则表达式

标签 ruby-on-rails ruby regex

我需要为都柏林邮政编码构建正则表达式查询,以验证 Rails 应用程序中的表单。

都柏林邮政编码的范围为 1-22,用户输入的内容包括:

“都柏林22” 《都柏林22号》 “都柏林22” 《都柏林22》 “D2” “d2” “D 2” “d 2” “2”

在 Ruby 中,我开始编写长验证器方法来涵盖其中的一些方法。我想知道正则表达式是否有更简单的解决方案。

  def formatted_postal_code
    # used to produce postal code in the format "Dublin 2"  
    if self.postal_code_is_i? &&  self.postal_code.to_i.between?(1, 22)
      # check if postal code is an integer  
      self.postal_code = "Dublin " + self.postal_code
    elsif
    else
      # capitalize postal code
      self.postal_code.capitalize  
    end
  end

  def postal_code_is_i?
    /\A[-+]?\d+\z/ === self.postal_code
  end

如有任何帮助或建议,我们将不胜感激。

最佳答案

试试这个:

test = "dublin 22"

p "true" if test =~ /^d?(ublin)?(\s)?22?$/i

关于ruby-on-rails - 都柏林邮政编码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32797112/

相关文章:

ruby-on-rails - 更快的 heroku 推送

ruby - 简单数组比较逻辑失败

javascript - 使用正则表达式查找阿拉伯语单词

javascript - 尽管输入无效,表单仍被提交

c# - 正则表达式 IsMatch 随机无法匹配模式

ruby-on-rails - 显示考试中问题的答案和回应

ruby-on-rails - ActiveStorage::FileNotFoundError 但文件实际存在

ruby-on-rails - 在不加载 ActiveRecord 的情况下测试 Rails 模块

ruby-on-rails - 通过关联ID的轮胎 Elasticsearch 过滤器

ruby - 从设备/管理员 session cookie 中获取用户