Flex ActionScript – Vérifier la validité d'une URL avec une RegExp (Expression Régulière)
Admettons que vous laissiez l'utilisateur de votre application Flex entrer une URL de son choix (l'adresse de son site web perso pour un profil par exemple). Afin de pouvoir créer un lien qui redirige vers une page valide, vous voudrez valider que cette url pointe bien vers un adresse valide. Par exemple, vous pourrez prévenir l'utilisateur s'il a écrit htp au lieu de http, ce genre de choses.
Il est possible de vérifier des chaînes (String) et leur syntaxe grâce à des expressions régulières. Si vous voulez en apprendre plus sur les RegExp, consultez ces tutoriaux AS3:
Expressions Régulières (RegExp) en ActionScript 3-1
Expressions Régulières (RegExp) en ActionScript 3-2
Maintenant que vous voyez à quoi une expression régulière, vous pouvez comprendre que pour vérifier une URL, l'expression régulière devient complexe (gestion de http/https, sous-domaines, cohérence …). J'ai trouvé sur ce blog, la RegExp permettant de valider une URL en AS3:
var regex:RegExp = /^http(s)?:\/\/((\d+\.\d+\.\d+\.\d+)|(([\w-]+\.)+([a-z,A-Z][\w-]*)))(:[1-9][0-9]*)?(\/([\w-.\/:%+@&=]+[\w- .\/?:%+@&=]*)?)?(#(.*))?$/i;
Plutôt complexe non ? Pour valider une chaîne URL, il faut donc simplement utiliser cette RegExp sur une chaîne avec la méthode test():
var url:String = "http://www.google.com"; var regex:RegExp = /^http(s)?:\/\/((\d+\.\d+\.\d+\.\d+)|(([\w-]+\.)+([a-z,A-Z][\w-]*)))(:[1-9][0-9]*)?(\/([\w-.\/:%+@&=]+[\w- .\/?:%+@&=]*)?)?(#(.*))?$/i; trace(regex.test(url)); // returns true si l'url est valide
Vous pouvez aussi utiliser cette expression régulière dans un Validator Flex de type RegExpValidator. Le composant pourra par exemple la validation tout seul sur une champ texte présent dans un formulaire
Flex Validator: Exemple de RegExpValidator en MXML et ActionScript
Articles similaires
- Flex Validator: Exemple de RegExpValidator en MXML et ActionScript
- Expressions Régulières (RegExp) en ActionScript 3-2
- Expressions Régulières (RegExp) en ActionScript 3-1
- Flex Validator: Coder ses propres validateurs en ActionScript
- Flex Validator: Exemple de CreditCardValidator en MXML et ActionScript
Aucun trackbacks pour l'instant






18 mai 2009
Salut,
J'aimerai savoir en tant que débutant comment appeler une autre fenêtre sur flex. C'est en quelque sorte la navigation dans flex en utilisant un objet buttonbar qui normallement doit afficher la fenêtre appelé quand je clique sur l'un des boutons.
Merci
18 mai 2009
Salut,
ça n'a pas vraiment de lien avec cet article mais admettons ^^. Je pense que cet article devrait répondre à ta question:
http://www.flex-tutorial.fr/2008/11/04/flex-navigator-les-composants-viewstack-et-tabnavigator/
Sinon, n'hésites pas à utiliser la recherche de ce blog
Fabien
7 octobre 2009
Sur le lien mentionné dans l'article, j'ai posté plusieurs corrections de la regex.
Mais avant de l'utiliser en prod, j'espère que quelqu'un d'autre que moi la testera. Je suis plutôt débutant en regex, donc j'ai peut-être écrit des trucs faux :-/
Personnellement, j'utilise l'URLValidator dispo ici : http://www.iotashan.com/index.php/2009/01/22/urlvalidator-for-as3flex/
avec la regex de l'article + mes modifs. Et ça fonctionne plutôt bien