Maison >interface Web >js tutoriel >Comment créer une expression régulière robuste pour détecter les URL avec ou sans préfixe « http:// » ?

Comment créer une expression régulière robuste pour détecter les URL avec ou sans préfixe « http:// » ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 21:34:41637parcourir

How to Create a Robust Regular Expression for Detecting URLs with or without

Comment construire une URL RegEx complète

Les modèles RegEx sont un outil puissant pour faire correspondre des formats de texte spécifiques. L'identification d'une URL à l'aide d'un modèle RegEx nécessite une attention méticuleuse pour garantir une détection précise.

Dans votre cas, la difficulté survient lorsque vous tentez de détecter des URL sans le préfixe "http://". Pour résoudre ce problème, voici un modèle RegEx amélioré :

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)

Répartition du modèle :

  • Protocole (facultatif) :

    • https ? correspond à "http://" ou "https://" (insensible à la casse).
  • Préfixe de sous-domaine (facultatif) :

    • (www.) correspond au « www ». préfixe de sous-domaine.
  • Nom de domaine :

    • [-a-zA-Z0-9@:%._ ~#=]{1 256} correspond à n'importe quelle combinaison de lettres, de chiffres et des caractères spéciaux spécifiés, avec une longueur maximale de 256 caractères.
  • Domaine de premier niveau :

    • .[a-zA-Z0-9()]{ 1,6} correspond au domaine de premier niveau (par exemple, ".com", ".org") avec une longueur maximale de 6 caractères.
  • Chemin et chaîne de requête (facultatif) :

    • b([-a-zA-Z0- 9()@:%_ .~#?&//=]*) capture tous les éléments de chemin supplémentaires dans le URL.

Regex alternative sans protocole requis :

[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)

Cette version supprime le composant de correspondance de protocole, ce qui la rend adaptée à URL telles que "www.google.com".

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