Regex - javascript

Résolu
sipatsymasaka Messages postés 107 Statut Membre -  
sipatsymasaka Messages postés 107 Statut Membre -
Bonjour,
Je suis novice mais pourtant déjà passionnée par javascript, c'est épatant ce qu'il arrive a faire. Je l'utilisa dans mes pages jsp.
Comment vais-je faire le test pour avoir un input qui ne prend que des chiffres,lettres(accentues ou non), le ', le -,et les espaces.
Je crois que c'est un gain de partage,connaissance,et de temps de poster ici.
Merci a vous!

5 réponses

  1. jaky1212 Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   8
     
    Si c'est un formulaire, avant l'envoi vers le serveur tu va devoir analyser tous les input. Avec les regex ca donne ca :

    var myRe = /[a-zA-Z0-9'-àâéèêîôùû]+/g;
    var myArray = myRe.exec(/*contenu de l'élément*/);

    si la liste myArray est vide alors les données ne correspondent pas.

    Si ce n'est pas un formulaire tu peux réaliser ce test à chaque changement dans tes inputs .
    0
  2. sipatsymasaka Messages postés 107 Statut Membre 6
     
    Merci de ta réponse rapide,
    Dans mon formulaire, je n'ai qu'un input texte a vérifier, le reste c'est des nombres et ça marche déjà, alors je veux le faire dans un onChange() de l'input.
    contenu de l'élément ~ document.formulaire.nom.value par exemple?
    Peux-tu m'aider a faire la petite fonction de vérification?

    function verif(){
    var myRe = /[a-zA-Z0-9'-àâéèêîôùû]+/g;
    var myArray = myRe.exec(document.formulaire.nom.value);
    return myArray;
    }

    est-ce comme ca?
    0
  3. sipatsymasaka Messages postés 107 Statut Membre 6
     
    bref,j'ai trouver une fonction:
    <html>
        <head>
            <title></title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>
            <script type="text/javascript">
    	function verifier_champs(){
    		if(document.getElementById('new_name').value == ''){
    			alert('Vous devez saisir un nom.');
    			return false;
    		}
    		
    		if(	!(/^[a-z]*$/i.test(document.getElementById('new_name').value)) ){
    			alert('Le nom ne doit pas contenir de caractères spéciaux.');
    			return false;
    		}
    		return true;
    	}
    </script>
    
    <form method="post" action="" id="addStaff" onsubmit="return verifier_champs()">
    	<span style="font-size: 14px;color: red;"> Must have         a name</span><br>
    	<label>Name</label><input type="text" name="new_name" id="new_name"><br>
    	<label>Surname</label><input type="text" name="new_surname" id="new_surname"><br>
    	<input type="submit" value="Add">
    </form>
        </body>
    </html>
    


    mais quand je remplace le regex par celle que tu m'a indiqué, ça donne une erreur, alors comment modifier cette fonction par celle que je veux?
    merci
    0
  4. sipatsymasaka Messages postés 107 Statut Membre 6
     
    la, je crois que je l'ai, ça peut aider(mais dit toujours si ya erreur):
    <!--
    To change this template, choose Tools | Templates
    and open the template in the editor.
    -->
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
            <title></title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>
            <script type="text/javascript">
    	function verifier_champs(){
    		if(document.getElementById('new_name').value == ''){
    			alert('Vous devez saisir un nom.');
    			return false;
    		}
    		
    		if(	!(/^([0-9A-Za-z- _\.\'\éèàêâîù])+/i.test(document.getElementById('new_name').value)) ){
    			alert('Le nom ne doit pas contenir de caractères spéciaux.');
    			return false;
    		}
    		return true;
    	}
    </script>
    
    <form method="post" action="" id="addStaff" onsubmit="return verifier_champs()">
    	<span style="font-size: 14px;color: red;"> Must have         a name</span><br>
    	<label>Name</label><input type="text" name="new_name" id="new_name"><br>
    	<label>Surname</label><input type="text" name="new_surname" id="new_surname"><br>
    	<input type="submit" value="Add">
    </form>
        </body>
    </html>
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sipatsymasaka Messages postés 107 Statut Membre 6
     
    j'ai trouver un erreur,il nous faut une boucle:
    <!--
    To change this template, choose Tools | Templates
    and open the template in the editor.
    -->
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
            <title></title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>
            <script type="text/javascript">
    	function verifier_champs(){
    		if(document.getElementById('new_name').value == ''){
    			alert('Vous devez saisir un nom.');
    			return false;
    		}
             var chkZ = 1;
    	 for(i=0;i<document.getElementById('new_name').value.length;++i){
    	   if(!(/^([0-9A-Za-z- _\.\'\éèàêâîù])+/i.test(document.getElementById('new_name').value.charAt(i))))
    	     chkZ = -1;
             }
    		if(chkZ == -1){
                        alert('Evitez les caracteres speciaux.');
                        return false;
    		}
    		return true;
    	}
    </script>
    
    <form method="post" action="" id="addStaff" onsubmit="return verifier_champs()">
    	<span style="font-size: 14px;color: red;"> Must have         a name</span><br>
    	<label>Name</label><input type="text" name="new_name" id="new_name"><br>
    	<label>Surname</label><input type="text" name="new_surname" id="new_surname"><br>
    	<input type="submit" value="Add">
            
    </form>
        </body>
    </html>
    
    0