Heim  >  Artikel  >  Backend-Entwicklung  >  Warum kann ich Domänen in PHP nicht ohne reguläre Ausdrücke validieren?

Warum kann ich Domänen in PHP nicht ohne reguläre Ausdrücke validieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 05:01:02181Durchsuche

Why Can't I Validate Domains in PHP Without Regular Expressions?

Verifizierung des PHP-Domänennamens

Frage: Wie verifiziert man den Domänennamen in PHP, ohne reguläre Ausdrücke zu verwenden?

Verifizierungsanforderungen:

  • Beginnt mit einem Buchstaben oder einer Zahl
  • Kann Buchstaben, Zahlen und Bindestriche enthalten
  • Beginnt mit Buchstaben- oder Zahlenende
  • , Länge reicht von 1 bis 253 Zeichen
  • Die Länge jedes Etiketts beträgt zwischen 1 und 63 Zeichen

Mögliche Antworten:

Nicht verwendet Domainnamenvalidierung mit regulären Ausdrücken ist nicht möglich, da mehrere Regeln und Einschränkungen geprüft werden müssen.

Muster für reguläre Ausdrücke:

/^[a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i

Bedeutung:

  • ^ und $ Ankerzeichenfolgen am Anfang und Ende.
  • [a-zd] entspricht Buchstaben oder Zahlen.
  • (-*[a-zd])* entspricht null oder mehr durch Bindestriche getrennten Buchstaben oder Zahlen.
  • Entspricht einem Punkt.
  • {} gibt die Anzahl der Wiederholungen an.

Beispielcode:

<code class="php">function is_valid_domain_name($domain_name)
{
    return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name) //valid chars check
            &amp;&amp; preg_match("/^.{1,253}$/", $domain_name) //overall length check
            &amp;&amp; preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name)   ); //length of each label
}</code>

Testfall:

域名 有效性
a Y
0 Y
a.b Y
localhost Y
google.com Y
news.google.co.uk Y
xn--fsqu00a.xn--0zwm56d Y
goo gle.com N
google..com N
google.com N
google-.com N
.google.com N
N
alert( N
. N
.. N
N
- N
[] N

Das obige ist der detaillierte Inhalt vonWarum kann ich Domänen in PHP nicht ohne reguläre Ausdrücke validieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn