Maison > interface Web > js tutoriel > Comment puis-je créer des expressions régulières robustes pour faire correspondre les URL avec et sans préfixes de protocole ?

Comment puis-je créer des expressions régulières robustes pour faire correspondre les URL avec et sans préfixes de protocole ?

Barbara Streisand
Libérer: 2024-12-24 05:54:17
original
968 Les gens l'ont consulté

How Can I Create Robust Regular Expressions to Match URLs with and without Protocol Prefixes?

Correspondance d'URL : une approche complète des expressions régulières

Lors de l'extraction d'URL à partir d'une entrée, il est crucial de disposer d'une expression régulière robuste capable de gérer divers scénarios. Dans ce cas, l'expression régulière fournie ne parvient pas à correspondre aux URL sans le préfixe de protocole « http » ou « https ». Pour relever ce défi, nous proposons deux expressions régulières alternatives :

Pour les URL nécessitant un protocole HTTP/HTTPS :

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

Pour les URL sans protocole HTTP /Exigence du protocole HTTPS :

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

Ces expressions régulières capturent efficacement les URL avec ou sans le protocole préfixe. À des fins expérimentales, vous pouvez tester ces expressions sur http://regexr.com?37i6s (avec préfixe de protocole) et http://regexr.com/3e6m0 (sans préfixe de protocole).

Vous trouverez ci-dessous un exemple Implémentation JavaScript :

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