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()@:%_\+.~#?&//=]*)
Cette expression améliorée inclut les fonctionnalités suivantes :
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()@:%_\+.~#?&//=]*)
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"); }
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!