9

私は現在、「適切な」URI バリデーターに取り組んでおり、現在はすべてホスト名の検証にかかっています。残りはそれほどトリッキーではありません。

私は IDN ホスト名ラベル (つまり、Unicode を含む; punycode でエンコードされた可能性のある文字列は、この時点でデコードされています) に行き詰まっています。

私の最初のアイデアは、基本的に、IDN をサポートしない TLD 用の 1 つの正規表現と、サポートする TLD 用の 1 つの正規表現でした。これはおそらく、 Mozilla の IDN 対応 TLD のリストに基づいている可能性があります。それぞれ、 ^[a-zA-Z0-9\-]+$および^[a-zA-Z0-9\-\p{L}]+$. ただし、すべての IDN レジストラが許可する文字を決定できるため、これは理想的な状況ではありません。

私が探しているのは、さまざまな TLD で許可されている Unicode 文字の適切で一貫性のある最新のデータ テーブルです。ロシアと中国の登録サイトですべてのデータを自分で見つけなければならないように見え始めています (これは非常に困難です)。

したがって、このデータをすべて自分で収集しようとする前に、そのようなリストが既に存在するかどうか疑問に思いました. または、より良いアプローチ、ベスト/一般的なプラクティスなどはありますか? (バリデーションはできるだけ厳しくしたい。)

4

2 に答える 2

1

すべての Unicode ドメインを punycode に変換して検証できませんか? とにかく DNS は実際の UTF-8 文字をサポートしていないので、これが最善の解決策かもしれません。

于 2010-05-17T19:17:55.573 に答える