Validation du format d'une url (regexp)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 278 fois - Téléchargée 27 fois

Contenu du snippet

La fonction suivante permet de vérifier si le format d'une chaîne passée en paramètre correspond à une URL. La fonction retournera alors une valeur booléenne.

Source / Exemple :


Function ValidationURL(url)
  Dim modele
  set modele = New RegExp
  modele.pattern = "^(http://|https://){0,1}[A-Za-z0-9][A-Za-z0-9\-\.]+[A-Za-z0-9]\.[A-Za-z]{2,}[\43-\176]*$"
  modele.global = true
  ValidationURL = modele.test(url)
End Function

Conclusion :


C'est le premier jet de ce bout de code, que je viens tout juste de pondre en écoutant PSI Factor... Ainsi, il est probable qu'il ait certaines failles... J'en ai déjà noté quelques unes, mais je manque d'inspiration, pour les corriger, en ce moment. Les voici :
il est possible de mettre des séquences invalides telles que .. ou ./ ou //

Je mettrai sûrement cet exemple à jour, lorsque je retravaillerai ce bout de code. Pour l'instant, il satisfait à mes besoins... Alors, si vous y apportez quelques corrections que ce soit, ce serait bien que vous nous en fassiez part, via le système de commentaires.

Merci.

A voir également

Ajouter un commentaire

Commentaires

Renfield
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
c'est deja le cas...

False pour
test.test.php/http://test.test.php

et true pour
www.google.com
Portekoi
Messages postés
19
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
13 janvier 2010
-
Bonjour,

J'essaie en vain de trouver un regexp qui me renvoi false pour "test.test.php/http://test.test.php" et true pour "www.google.com"

Une idée?

Merci


Portekoi
jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16 -
Assez bien :)
pour les regexp tu peux allez voir ici : http://regexlib.com/DisplayPatterns.aspx?cattabindex=1&categoryId=2

tu en auras des regexp plus completes

en .net ca donne :

Public Shared Function IsUrl(ByVal strTmp As String) As Boolean
Dim objIntPattern As New System.Text.RegularExpressions.Regex( "^(http://|https://){0,1}[A-Za-z0-9][A-Za-z0-9\-\.]+[A-Za-z0-9]\.[A-Za-z]{2,}[\43-\176]*$")
Return objIntPattern.IsMatch(strTmp)
End Function

d'apres Fabrice69 : http://www.aspfr.com/code.aspx?ID=21154

Mais je pense qu'il y a une classe dans le framework qui fait deja ca, c'est juste pour montrer comment faire sur le meme principe en .net

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.