begin process at 2012 05 28 10:09:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > FONCTION REGEX MULTIPLES VALIDATION FORMULAIRE

FONCTION REGEX MULTIPLES VALIDATION FORMULAIRE


 Information sur la source

Note :
Aucune note
Catégorie :Formulaire Classé sous :regexp, fichier telephone, code postal, mail date, mdp ip Niveau :Débutant Date de création :29/01/2011 Date de mise à jour :29/01/2011 14:06:07 Vu :3 486

Auteur : tefa24600

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

En attendant le déploiement du HTML 5, voici une petite fonction regex qui stocke les expressions régulières les plus courantes et donc permet de valider une bonne partie des champs connus dans les formulaires !

Source

  • function regex(Variable) {
  • switch (Variable) {
  • case "texte" : reg = new RegExp("^(.|\n|\r|\n\r){3,}$","i"); break; // texte de 3 caractères minimum, retour à la ligne possible
  • case "mail" : reg = new RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}\\s*$","i"); break; // adresse mail valide customer@fai.ext
  • case "mdp" : reg = new RegExp("^.{5,32}$","i"); break; // mot de passe entre 5 et 32 caractères
  • case "date" : reg = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$","i") ; break; // date au format 01/01/2000
  • case "ip" : reg = new RegExp("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$","i"); break; // adresse IPV4
  • case "tel" : reg = new RegExp("^0[1-9]([-. ]?[0-9]{2}){4}$","i"); break; // numéro de téléphone français
  • case "cp" : reg = new RegExp("^[0-9]{5}$","i"); break; // code postal
  • case "fichier" : reg = new RegExp("^.+\.[a-zA-Z]{2,5}$","i"); break; // fichiers à uploader
  • // Ajoutez ici vos expressions
  • }
  • return reg;
  • };
function regex(Variable) {
	switch (Variable) {
		case "texte"   : reg = new RegExp("^(.|\n|\r|\n\r){3,}$","i"); break; // texte de 3 caractères minimum, retour à la ligne possible  
		case "mail"    : reg = new RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}\\s*$","i"); break; // adresse mail valide customer@fai.ext  
		case "mdp"     : reg = new RegExp("^.{5,32}$","i"); break; // mot de passe entre 5 et 32 caractères  
		case "date"    : reg = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$","i") ; break; // date au format 01/01/2000  
		case "ip"      : reg = new RegExp("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$","i"); break; // adresse IPV4  
		case "tel"     : reg = new RegExp("^0[1-9]([-. ]?[0-9]{2}){4}$","i"); break; // numéro de téléphone français  
		case "cp"      : reg = new RegExp("^[0-9]{5}$","i"); break; // code postal  
		case "fichier" : reg = new RegExp("^.+\.[a-zA-Z]{2,5}$","i"); break; // fichiers à uploader  
		// Ajoutez ici vos expressions  
	}
	return reg;
};

 Conclusion

Cas d'utilisation :

var input = window.prompt("Saisissez le nouveau nom :", "dossier/image.jpg");
var fileOK = regex("fichier");

if(!fileOK.test(input))
    alert("votre saisie est incorrecte !");



 Historique

29 janvier 2011 14:06:07 :
correction de l'exemple

 Sources du même auteur

Source avec une capture PRINT_R EN JAVASCRIPT
SAINT DU JOUR
Source avec Zip Source avec une capture EFFET RAYONS DU SOLEIL
TAILLE DE TEXTE EN FONCTION DE LA RÉSOLUTION

 Sources de la même categorie

Source avec Zip Source avec une capture FORMULAIRE TABLEAU par vic511
Source avec Zip Source avec une capture FORMULAIRE DYNAMIQUE par Niidhogg
Source avec Zip Source avec une capture CONTRAINTE DE SAISIE SUR CHAMPS INPUT par ryosama
SELECTS DÉPENDANTS PRÉ-CHARGÉS D'UNE SEULE OPTION par phm
Source avec Zip Source avec une capture BOITE DE DIALOGUE MODALE DE SÉLECTION D'UNE LISTE D'ICONES par JJDai

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture RÉSOUDRE UNE ÉQUATION EN 6 ÉTAPES par Zestyr
Source avec Zip VFORM (CONTRÔLE COMPLET DE FORMULAIRE) par kakoo
Source avec Zip Source avec une capture WEBMESSAGEBOX par AbriBus
REG EXP TESTEUR par coucou747

Commentaires et avis

Commentaire de Jormund le 31/01/2011 11:00:35

Bien que le code soit indiqué débutant, je trouve dommage que pour les dates il soit simpliste et pas forcément utilisable en pratique.
Il ne suffit pas qu'un texte soit composé de chiffres séparés par des / pour être une date valide ( "97/42/3446" n'est pas une date).

Par ailleurs, ce sont des un détails mais:
-Les domaines de premier niveau peuvent avoir plus de 3 caractères (.info par exemple)
-Pour les fichiers l'extension aussi être plus courte que 2 caractères, et peut dépasser 5 caractères (.tar.gz par exemple) Sous les windows récents, la seule limite est la taille des chemins qui ne peut dépasser 260 caractères.
-(.|\n|\r|\n\r) fait la même chose que (.|\n|\r)
-tu acceptes les chiffres, tirets et underscore dans les mails mais pas dans les noms de fichier (ça peut être un choix, mais je ne sais pas si il était volontaire)

Commentaire de tefa24600 le 31/01/2011 11:36:23

Merci pour le commentaire, j'avais besoin d'un regard neuf sur ces fonctions regexp.

J'avoue que certaines de ces fonctions ont été trouvées sur le net et me permettaient de reprendre ce code à chaque fois que j'avais besoin de vérifier un champ.

en ce qui concerne les fichiers (précisés destinés à uploader), je les nettoie de tout caractère spécial et comme généralement il s'agissait d'images ou de fichiers à extensions "normales" (pas plus de 3 caractères), je ne me suis pas em....é à faire une super (lourde) fonction regexp !

Commentaire de Jormund le 31/01/2011 11:43:41

Je viens de me relire et de voir que l'exemple d'extension de plus de 5 caractères que je donne est stupide, il contient un point et serait accepté par ta regex.
".torrent" est un autre exemple de fichier courant avec une extension longue.
Après, si tu ne veux accepter que des images par exemple, tu aurais intérêt à être plus précis et mettre exactement la liste des extensions que tu acceptes plutôt qu'une limite de 3 caractères.

Commentaire de tefa24600 le 31/01/2011 12:12:03

C'est vrai que d'allonger la limite encore un peu plus n'est pas très intelligent, mais je voulais que ma source soit la plus "portable" possible, qu'elle puisse se généraliser et éviter aux utilisateurs de s'arracher les cheveux avec ces saletés de regexp !

Dans un autre sens, si je propose une source qui ne remplit pas totalement son rôle, elle ne sert à rien.

Je te remercie pour ces critiques et je vais faire en sorte de pallier à ces problèmes !

Commentaire de nino31 le 31/01/2011 16:21:22

En tout cas, vu la complexité des regex l'initiative de créer une classe "Regex" est très bonne...

Commentaire de tefa24600 le 31/01/2011 16:42:28

j'ai vu d'ailleurs qu'il existe des sites tels que http://www.regexlib.com/, spécialisés dans les expressions régumières,  mais je n'ai pas encore vu de fonction universelle pour valider le format d'un fichier

Commentaire de faridh1077 le 05/02/2011 01:32:37

tres bonne contiuation

Commentaire de faridh1077 le 05/02/2011 01:35:14

très bonne continuation

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problême avec RegExp [ par AgentSmith ] Il y a un truc qui m'echappe,je souhaite utiliser split(); pour scinder ma chaînemais la recherche s'effectue sur un anti-slach et je ne trouve pas l' verifier champ date et heure [ par dreaman ] Bjour,j'ai 3 fonctions qui v&#233;rifie mes champs de saisie de "date","heure debut" et "heure fin", mais je voudrai rassembl&#233; les trois...commen regexp [ par tonytruand ] Bonjour?un truc tout b&#234;te j'aimerais retirer d'une cha&#238;ne de caract&#232;res tout ce qui se trouve depuis le : au G inclus ;&nbsp; pour ne g RegExp [ par syndrael ] Bonjour j'aimerai inclure la possibilit&#233; de taper un espace comme le ' et le - (donc dans le m&#234;me intervalle) mais je ne sais po koa mettre. Problème de syntaxe avec Regexp [ par mattarius ] Bonjour à tous, Je débute en Javascript et je viens de découvrir la fonction RegExp, qui est très pratique mais j'ai des problèmes avec la syntax Regexp Multilignes [ par Ordinastie ] Bonjour,Je me trouve confronté à un petit problème concernant les expression régulières:Voici mon texte: <font Problème avec une RegExp [ par AgLS ] Bonjour, J'ai un petit problème avec ma première RegExp en JavaScript. Cette RegExp doit vérifier les critères ci-dessou dans un email: -Commence par regexp [ par tonytruand ] Bonsoir,Je m'arrache les cheveux avec une regexp; quelqu'un pourrait il me donner un coup de main avant que je ne devienne chauve.j'ai cette chaine do Détecter les caractères qui ne matchent pas une regExp [ par flexx ] Bonjour Dans un formulaire, je vérifie qu'un champ est correct en le testant avec une expression régulière. Si celle-ci ne matche pas, un message d'er Expressions régulières [ par koalyptus ] Bonjour, n'étant pas très à l'aise avec les RegExp je voudrais savoir comment faire pour trouver une occurrence exacte d'un mot dans une chaîne. Je m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,713 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales