2
我需要为都柏林邮政编码构建正则表达式查询来验证Rails应用中的表单。正则表达式为都柏林邮政编码
都柏林邮政码的范围从1-22,和用户都在包括输入把:
“都柏林22” “都柏林22” “dublin22” “Dublin22” “D2” “D2 “ ”d 2“ ”d 2“ ”2“
在Ruby中,我已经开始写长验证的方法来掩盖其中的一些。我想知道在Regex中是否有更简单的解决方案。
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
任何帮助或建议表示赞赏。
如果你说,“包括输入:”,你提供的例子或者是可能性的全部范围?你真的需要提供后者。 “都柏林<额外空间> 22”? “都柏林02”? “d-22”? “DUBlin 22”? –