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
Libérer: 2024-10-31 05:01:02
original
338 Les gens l'ont consulté

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
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal