我需要验证网址,因此我使用了网站http://www.rubular.com/,结果可能是错误的。所以我在http://www.rubular.com/写了这个:w{3}\.[a-z]+\.[a-z]{3}
,它给了我几乎想要的结果。在我的模型网站上,我写道:
VALID_URL_REGEX = /w{3}\.[a-z]+\.[a-z]{3}/
validates :url, :presence => true, format: { with: VALID_URL_REGEX }
问题:如何检查,最后一部分应该只包含3个字母?
答案 0 :(得分:1)
您必须使用\A
和\z
来匹配字符串的开头和结尾。
像这样:/\Aw{3}\.[a-z]+\.[a-z]{3}\z/
。
但就像Mahmoud Al-Qudsi所说,tlds可以有多于或少于3个字母。 你应该让它匹配多个子域或裸域(例如stackoverflow.com而不是www.stackoverflow.com)。
我想出了这个/\A(?:[\w-]+(?<!-)\.){1,}[\w]{2,}\z/
。