确认RegExp

时间:2012-05-22 08:13:36

标签: regex validation

我需要验证网址,因此我使用了网站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个字母?

1 个答案:

答案 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/