Maison > interface Web > js tutoriel > Comment puis-je utiliser des expressions régulières pour détecter les URL, y compris les URL nues ?

Comment puis-je utiliser des expressions régulières pour détecter les URL, y compris les URL nues ?

DDD
Libérer: 2024-12-12 19:06:15
original
125 Les gens l'ont consulté

How Can I Use Regular Expressions to Detect URLs, Including Naked URLs?

Détection des URL avec des expressions régulières

Votre code actuel ne parvient pas à correspondre aux URL nues, qui n'ont pas le préfixe "http://". Pour résoudre ce problème, envisagez d'adopter une expression régulière complète :

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

Cette expression améliorée inclut les fonctionnalités suivantes :

  • Elle garantit que les URL commencent par "http://" , "https://", ou rien.
  • Il autorise les sous-domaines en incluant "(www.)" comme préfixe facultatif.
  • Il prend en charge les noms de domaine jusqu'à 256 caractères et domaines de premier niveau jusqu'à 6 caractères.

Pour ceux qui n'ont pas besoin du protocole HTTP dans leurs correspondances, une expression alternative est disponible :

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

Pour démontrer la fonctionnalité de ces expressions, consultez les outils de test en ligne sur http://regexr.com?37i6s (pour la première expression) ou http://regexr.com/3e6m0 (pour l'expression la moins restrictive).

Voici un exemple d'implémentation JavaScript utilisant l'expression régulière la plus complète :

const expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/gi;
const regex = new RegExp(expression);
const t = 'www.google.com';

if (t.match(regex)) {
  alert("Successful match");
} else {
  alert("No match");
}
Copier après la connexion

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal