Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

QUELQUES FONCTIONS DE VÉRIFICATION DE SAISIE UTILISANT LES EXPRESSIONS RÉGULIÈRES


Information sur la source

Catégorie :Formulaire Classé sous : expressions, régulières, controle, champ, saisie Niveau : Expert Date de création : 26/03/2007 Vu : 9 868

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note


Description

Voici un ensemble de fonction de vérification de saisie d'un formulaire utilisant les expressions régulières.
Ces fonctions vérifie la saisie de champs le plus utilisés dans un formulaire.
 

Source

  • //Fonction de vérification chaine de cratere sans chiffres
  • function verif_alphab (champ,saisie)
  • {
  • var reg_alphab = /^[A-Za-z]+$/;
  • if (!(reg_alphab.exec(saisie)!=null))
  • {
  • alert("Le champ saisie n'est pas au format valide !");
  • champ.focus();
  • }
  • }
  • //Fonction de vérification de saisie d'heure
  • function verif_heure(champform,valeur)
  • {
  • var ctl = /^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$/;
  • if (!(ctl.exec(valeur)!=null))
  • {
  • alert("L'heure saisie n'est pas au format valide !");
  • champform.focus()
  • }
  • }
  • //Fonction de vérification saisie numérique (chiffres)
  • function verif_numeric (nb_saisie,champnum)
  • {
  • var nb=nb_saisie.value;
  • var rfocu=champnum;
  • if ((isNaN(nb)))
  • {
  • alert("Le nombre saisi n'est pas valide !");
  • return(false);
  • }
  • return(true);
  • }
  • //Fonction de vérification de saisie d'email au bon format
  • function verif_mail(email)
  • {
  • if (email!='')
  • {
  • var reg_mail = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
  • if (!(reg_mail.exec(email)!=null))
  • {
  • alert("L'adresse email saisie n'est pas au format valide !");
  • return(false);
  • }
  • }
  • return(true);
  • }
  • //Fonction de vérification de saisie code postal francais et belge
  • function verif_cp(cp)
  • {
  • var reg_cp = /^[0-9]{5}$/
  • //code postal francais ^(0[1-9]|[1-9][0-9])[0-9]{3}$
  • // code postal belge ^(F-[0-9]{4,5}|B-[0-9]{4})$
  • if (!(reg_cp.exec(cp)!=null))
  • {
  • alert("Le code postal saisie n'est pas au format valide !");
  • return(false);
  • }
  • return(true);
  • }
  • //Fonction de vérification de saisie du numéro de téléphone français
  • function verif_tel(tel)
  • {
  • if (tel!='')
  • {
  • var reg_tel = /^[0-9]{10}$/
  • if (!(reg_tel.exec(tel)!=null))
  • {
  • alert("Le numero de tel saisie n'est pas au format valide !");
  • return(false);
  • }
  • }
  • return(true);
  • }
  • //fonction utilisant la vérification de la saisie au bon format d'une date et récupération de focus
  • function verifdate_blur(datesaisie,champdat) {
  • var dateaverif=datesaisie.value;
  • var rfocu=champdat;
  • // rangement de la date dans des variables
  • if (dateaverif!="")
  • {if (!verifdate(dateaverif)) {
  • alert("Attention soit la date n'est pas correcte, soit elle n'est pas au format JJ/MM/AAAA");DonnerFocus(rfocu);return false;
  • }
  • }
  • return true;
  • }
  • //fonction vérifiant la saisie au bon format d'une date
  • function verifdate(d) {
  • var dateaverifier=d
  • // rangement de la date dans des variables
  • if (dateaverifier.substring(0,1)=="0"){
  • var j=parseInt(dateaverifier.substring(1,2));
  • }
  • else {
  • var j=parseInt(dateaverifier.substring(0,2));
  • }
  • if (dateaverifier.substring(3,4)=="0"){
  • var m=parseInt(dateaverifier.substring(4,5));
  • }
  • else {
  • var m=parseInt(dateaverifier.substring(3,5));
  • }
  • var a=parseInt(dateaverifier.substring(6,10));
  • //si la longueur est différent de 10 , problème
  • if (dateaverifier.length != 10) {
  • return false;
  • }
  • //les caratères / ne sont pas aux endroits attendus
  • else {
  • if((dateaverifier.charAt(2) != '/') && (dateaverifier.charAt(5) != '/')) {
  • return false;
  • }
  • }
  • //l'année n'est pa un chiffre
  • if (isNaN(a)) {
  • return false;
  • }
  • //le mois n'est pas un chiffre ou n'est pas compris entre 0 et12
  • if ((isNaN(m))||(m<1)||(m>12)) {
  • return false;
  • }
  • //test si il s'agit d'une année bissextile pour accepter le 29/02
  • if (((a % 4)==0 && (a % 100)!=0) || (a % 400)==0){
  • if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>29)))) {
  • return false;
  • }
  • }
  • else {
  • if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>28)))){
  • return false;
  • }
  • }
  • return true;
  • }
//Fonction de vérification chaine de cratere sans chiffres
function verif_alphab (champ,saisie)
{
var reg_alphab =  /^[A-Za-z]+$/;
		if (!(reg_alphab.exec(saisie)!=null))
		  {	
			alert("Le champ saisie n'est pas au format valide !");
			champ.focus();
		  }
}
//Fonction de vérification de saisie d'heure
function verif_heure(champform,valeur) 
{
var  ctl = /^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$/;
		if (!(ctl.exec(valeur)!=null))
          {            
			alert("L'heure saisie n'est pas au format valide !");
			champform.focus()
		  }
}
//Fonction de vérification saisie numérique (chiffres)
function verif_numeric (nb_saisie,champnum)
	{
	  var nb=nb_saisie.value;
	  var rfocu=champnum;
		if ((isNaN(nb))) 
		{
			alert("Le nombre saisi n'est pas valide !");
			
			return(false);
		}
		return(true);
	}
	
//Fonction de vérification de saisie d'email au bon format
function verif_mail(email)
    {
	if (email!='')
	  {
		var reg_mail = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/	 
		if (!(reg_mail.exec(email)!=null))
		  {	
			alert("L'adresse email saisie n'est pas au format valide !");
			return(false);
		  }
	  }
	  return(true);
	}

//Fonction de vérification de saisie code postal francais et belge

function verif_cp(cp)
    {
		var reg_cp =  /^[0-9]{5}$/ 
		//code postal francais ^(0[1-9]|[1-9][0-9])[0-9]{3}$
		// code postal belge ^(F-[0-9]{4,5}|B-[0-9]{4})$
		if (!(reg_cp.exec(cp)!=null))
		  {	
			alert("Le code postal saisie n'est pas au format valide !");
			return(false);
		  }
  	  return(true);
	}
//Fonction de vérification de saisie du numéro de téléphone français

function verif_tel(tel)
    {
		if (tel!='')
		{	
			var reg_tel = /^[0-9]{10}$/
			if (!(reg_tel.exec(tel)!=null))
			  {	
				alert("Le numero de tel saisie n'est pas au format valide !");
				return(false);
		  	  }
		}
  	  return(true);
	}		
//fonction utilisant la vérification de la saisie au bon format d'une date et récupération de focus
function verifdate_blur(datesaisie,champdat) {
  var dateaverif=datesaisie.value;
  var rfocu=champdat;
  // rangement de la date dans des variables
  if (dateaverif!="")
  {if (!verifdate(dateaverif)) {
         alert("Attention soit la date n'est pas correcte, soit elle n'est pas au format JJ/MM/AAAA");DonnerFocus(rfocu);return false;
      }
  }
   return true;
}

//fonction vérifiant la saisie au bon format d'une date
function verifdate(d) {
  var dateaverifier=d
  // rangement de la date dans des variables
  if (dateaverifier.substring(0,1)=="0"){
         var j=parseInt(dateaverifier.substring(1,2));
      }
      else {
         var j=parseInt(dateaverifier.substring(0,2));
      }
      if (dateaverifier.substring(3,4)=="0"){
         var m=parseInt(dateaverifier.substring(4,5));
      }
      else {
         var m=parseInt(dateaverifier.substring(3,5));
         }
      var a=parseInt(dateaverifier.substring(6,10));
   //si la longueur est différent de 10 , problème
     if (dateaverifier.length != 10) {
         return false;
   }
   //les caratères / ne sont pas aux endroits attendus
   else {
      if((dateaverifier.charAt(2) != '/') && (dateaverifier.charAt(5) != '/')) {
         return false;
      }
   }
   //l'année n'est pa un chiffre
   if (isNaN(a)) {
      return false;
    }
   //le mois n'est pas un chiffre ou n'est pas compris entre 0 et12
     if ((isNaN(m))||(m<1)||(m>12)) {
      return false;
    }
   //test si il s'agit d'une année bissextile pour accepter le 29/02
   if (((a % 4)==0 && (a % 100)!=0) || (a % 400)==0){
         if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>29)))) {
            return false;
        }
   }
    else {
         if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>28)))){
         return false;
      }
   }
   return true;
}

Commentaires et avis

signaler à un administrateur
Commentaire de romagny13 le 26/03/2007 13:07:07

j'ai pas testé mais ça a l'air pas mal du tout surtout moi qui suis pas super fort avec les expressions régulières
comme j'ai pas testé je ne mets que 9/10 mais ca peut être vraiment utile .
merci

signaler à un administrateur
Commentaire de bultez le 26/03/2007 14:23:12

ça peut être utile, aider.
mais pourquoi diable ne pas contrôler les dates,
les zones numériques... avec des expressions régulières ?
( même s'il faut ajouter des contrôles après ! )
vu que c'était le but ?

signaler à un administrateur
Commentaire de dmiodon le 02/04/2007 10:43:05

Fonctions intéressantes, mais je suis d'accord avec BULTEZ, une petite expression régulière pour vérifier la date serait bienvenue.
Par exemple : /^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}$/ permettrait déjà de vérifier si la date correspond bien à un format jj/mm/aaaa. Il faut bien sûr ensuite contrôler si la date est effectivement cohérente...

signaler à un administrateur
Commentaire de Mourad_2007 le 01/05/2007 14:10:04

c'est utile.
mais pourquoi ne pas rendre ses fonctions sans paramètres pour quelles fonctionnes sur un ou plusieurs champs.
et ce n'est pas correcte d'écrire champ.focus
@+

signaler à un administrateur
Commentaire de bluedemon le 01/05/2007 23:22:52

Lors de la validation d'un formulaire, chaque champs doit etre vérifié et averti l'internaute quel champs à une mauvaise saisie. Ces fonctions sont utilisé par n'importe quel champs que tu souhaite. De plus le focus est une fonction correct, je ne vois pas en quoi ca ne le serai pas. Au moins l'internaute a son curseur directement dans le bon champs. Ne pas oublié que l'internaute moins il en fait, plus il saisira des informations.

signaler à un administrateur
Commentaire de Mourad_2007 le 03/05/2007 10:40:20

Bonjour je voulais dire par :''ce n'est pas correcte d'écrire champ.focus''
Que votre fonction ne marche pas sur d'autres navigateur par exemple le ‘’champ.focus‘’ n'est pas reconnu par Firefox.

signaler à un administrateur
Commentaire de bluedemon le 03/05/2007 21:34:24

Et bien, j'ai pu reverifier, cela fonctionne sous firefox. Ce que je donne en paramettre pour champ, c'est this.form ou document.form.champ et tout fonctionne.

signaler à un administrateur
Commentaire de dede55 le 07/12/2008 18:36:45

peux tu donner un fichier exemple pour les débutants

merci

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Controle formulaire paranoiaque [ par ma2x ] Bonjour à tousIl m'a été demandé dans le cadre du boulot de mettre en oeuvre une interface de saisie de données soumis à des controles de toutes parts Controle champ formulaire [ par flopad ] Bonjour tout le monde, j'ai une page contenant un formulaire, je voudrais qu'on message d'alerte s'affiche lors de la validation si la date (code ci-d Expressions régulières [ par fabiano13 ] Bonjour,Je cherche à supprimer, grâce aux expressions régulières, toutes les balises (BBCode) sélectionnées ![b]texte..[/b] [u]texte..[/u] [align=left Controle de saisie [ par titmael ] Bonjour,je souhaite effectuer un controle de saisie sur un champs nommé LOGIN de mon formulaire.Je souhaite que ce champs ne contienne que des lettres date dans formulaire [ par dlgforum ] Bonjour, Voilà, j'ai un formulaire dans lequel je saisie une date et je souhaiterai un controle pour vérifier si cette date est bien entre deux dates. Taille d'une chaine de caractere en pixel [ par mchab ] Bonjourcomme le sujet le laisse pr&#233;voir, je cherche &#224; r&#233;cup&#233;rer la taille en pixel d'une chaine de caracteres affich&#233;e dans&n Controler la saisie d'un champ [ par Dellys ] Bonjourj'ai dans mon formulair un champ "montant ch&#233;que" et je veut que la saisie soit avec un point pas avec une v&#233;rgule exemple&nbsp;&nbsp expressions régulières, fonction replace [ par sapakus ] Bonjour,Voili voilou : je veux enlever les z&#233;ros au d&#233;but d'une chaine de caract&#232;res et garder le reste, et ce en utilisant les express .selectionStart dans un Iframe [ par bultez ] Bonjour à toutes et à tous,je ne parviens pas à utiliser .selection??? dans un iframe ( avec FF/M-Meleon... donc )&lt; ca coince avec cette fonction [ par B e N z ] salut tt le monde enfaite moi je suis en stage ds une soci&#233;t&#233; et on m'as charger de faire un formulaire pour leur site intranet m&#233; le b


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.