425 votes

Vérifier si une chaîne JavaScript est une URL

Existe-t-il un moyen en JavaScript de vérifier si une chaîne est une URL ?

Les expressions régulières sont exclues car l’URL est très probablement écrite comme ; c’est-à-dire qu’elle peut ne pas avoir de , ou ```` .

342voto

Tom Gullen Points 20826

Une question connexe avec une réponse:

Correspondance d’URL d’expression régulière Javascript

Ou cette Regexp de Devshed:

164voto

Zemljoradnik Points 2630
function isURL(str) {
  var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
  '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|'+ // domain name
  '((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
  '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path
  '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string
  '(\\#[-a-z\\d_]*)?$','i'); // fragment locator
  return pattern.test(str);
}

75voto

VicJordan Points 382

J’utilise la fonction ci-dessous pour valider l’URL avec ou sans `` :

<div class="snippet" data-babel="false" data-console="true" data-hide="false" data-lang="js"> <div class="snippet-code">

</div></div>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X