Heim > Backend-Entwicklung > PHP-Tutorial > 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
Freigeben: 2024-10-31 05:01:02
Original
309 Leute haben es durchsucht

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
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage