1. ホーム
  2. regex

[解決済み] サブドメインを含まない有効なドメイン名にマッチする正規表現とは何ですか?

2022-05-13 21:40:47

質問

私はドメイン名を検証する必要があります。

google.com

スタックオーバーフロー・ドットコム

つまり、最も単純な形のドメイン - wwwのようなサブドメインでさえもない。

  1. 文字は以下のものだけにしてください。 a-z | A-Z | 0-9 そして ピリオド (.) と ダッシュ (-)
  2. ドメイン名部分はダッシュ(-)で始まらない、またはダッシュで終わらないこと。 (例: -google-.com)
  3. ドメイン名部分は1文字以上63文字以下であること
  4. <ストライク 拡張子(TLD)は、今のところ#1ルールの下で何でも構いません。私は後でリストに対してそれらを検証するかもしれませんが、それは1文字以上でなければなりません。

no. 4を修正しました。 TLD は .co.uk のようなものを含むので、実際には "subdomain" と表示されるべきです。(リストに対するチェックとは別に)可能な唯一の検証は、「最初のドットの後に、ルール #1 に基づく 1 つ以上の文字があること」だと想像します。

ありがとうございました。

どのように解決するのですか?

さて、それは <ストライク かなり簡単です であり、見た目よりも少し卑劣なものです (コメントを参照)。

/^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$/

しかし、これは多くの有効なドメインを拒否することに注意してください。