Maison >développement back-end >tutoriel php >Pourquoi ne puis-je pas valider des domaines en PHP sans expressions régulières ?

Pourquoi ne puis-je pas valider des domaines en PHP sans expressions régulières ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 05:01:02265parcourir

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

Vérification du nom de domaine PHP

Question : Comment vérifier le nom de domaine en PHP sans utiliser d'expressions régulières ?

Exigences de vérification :

  • Commence par une lettre ou un chiffre
  • Peut contenir des lettres, des chiffres et des traits d'union
  • Début avec une lettre ou un chiffre se terminant par
  • la longueur varie de 1 à 253 caractères
  • La longueur de chaque label est comprise entre 1 et 63 caractères

Réponses possibles :

Non utilisé Validation du nom de domaine avec des expressions régulières n’est pas possible car plusieurs règles et restrictions doivent être vérifiées.

Modèle d'expression régulière :

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

Signification :

  • ^ et $ ancrent les chaînes du début et fin de.
  • [a-zd] correspond à des lettres ou à des chiffres.
  • (-*[a-zd])* correspond à zéro ou plusieurs lettres ou chiffres séparés par des traits d'union.
  • . Correspond à un point.
  • {} précise le nombre de répétitions.

Exemple de code :

<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>

Cas de test :

域名 有效性
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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn