Quelques fonctions de vérification de saisie utilisant les expressions régulières

5/5 (9 avis)

Snippet vu 20 954 fois - Téléchargée 23 fois

Contenu du snippet

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 / Exemple :


//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;
}

A voir également

Ajouter un commentaire Commentaires
cs_lanner Messages postés 131 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 8 avril 2015
1 mars 2009 à 17:15
salut est il possible d'avoir un fichier de demonstrations ?
merci
cs_dede55 Messages postés 1 Date d'inscription lundi 19 juin 2006 Statut Membre Dernière intervention 7 décembre 2008
7 déc. 2008 à 18:36
peux tu donner un fichier exemple pour les débutants

merci
cs_bluedemon Messages postés 41 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 3 novembre 2008
3 mai 2007 à 21:34
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.
cs_Mourad_2007 Messages postés 6 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 3 mai 2007
3 mai 2007 à 10:40
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.
cs_bluedemon Messages postés 41 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 3 novembre 2008
1 mai 2007 à 23:22
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.

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.