Maison >interface Web >js tutoriel >Comment puis-je améliorer mon expression régulière pour faire correspondre les URL plus efficacement ?
Expression régulière améliorée pour les URL correspondantes
Lorsque vous tentez de détecter et d'analyser des URL à partir des entrées de l'utilisateur, il est crucial d'utiliser une expression régulière efficace. Dans votre cas, même si votre expression actuelle capture certains formats d'URL, elle ne parvient pas à prendre en compte les URL dépourvues de schéma de protocole explicite, telles que www.google.com.
Expression régulière révisée
Pour résoudre ce problème et garantir une correspondance complète des URL, envisagez d'utiliser l'expression régulière révisée suivante :
^(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
Anatomie de la Regex
Ceci l'expression régulière révisée est moins restrictive et correspondra avec succès aux URL telles que www.google.com, ainsi qu'à celles avec des protocoles explicites (par exemple, http://www.stackoverflow.com).
Exemple de mise en œuvre (JavaScript)
const regex = new RegExp(/(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)g); const url = 'www.google.com'; if (url.match(regex)) { console.log("URL successfully matched."); } else { console.log("URL did not 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!