1

URL を検証する必要があるため、サイト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 文字しか含まれていないことを確認するにはどうすればよいですか?

4

1 に答える 1

1

\Aandを使用し\zて、文字列の開始と終了に一致させる必要があります。

このように: /\Aw{3}\.[a-z]+\.[a-z]{3}\z/.

しかし、Mahmoud Al-Qudsi が言ったように、tld は 3 文字より多い場合も少ない場合もあります。また、複数のサブドメインまたはネイキッド ドメインに一致させる必要があります (例: www.stackoverflow.com ではなく、stackoverflow.com)。

私はこれを思いつきました/\A(?:[\w-]+(?<!-)\.){1,}[\w]{2,}\z/

于 2012-05-22T08:25:49.843 に答える