1

我需要验证 url,所以我使用了网站http://www.rubular.com/,也许我得到了错误的结果。所以我写了这个:w{3}\.[a-z]+\.[a-z]{3}http://www.rubular.com/它给了我几乎想要的结果。在我的模型网站中,我写道:

 VALID_URL_REGEX = /w{3}\.[a-z]+\.[a-z]{3}/
 validates :url, :presence => true, format: { with: VALID_URL_REGEX }

问题:我该如何检查,最后一部分应该只包含 3 个字母?

4

1 回答 1

1

您必须使用\Aand\z来匹配字符串的开头和结尾。

像这样:/\Aw{3}\.[a-z]+\.[a-z]{3}\z/

但就像 Mahmoud Al-Qudsi 所说,tld 的字母可以多于或少于 3 个。你应该让它匹配多个子域或裸域(例如 stackoverflow.com 而不是 www.stackoverflow.com)。

我想出了这个/\A(?:[\w-]+(?<!-)\.){1,}[\w]{2,}\z/

于 2012-05-22T08:25:49.843 回答