Regex - javascript

Résolu/Fermé
sipatsymasaka Messages postés 99 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 28 novembre 2014 - 30 nov. 2011 à 08:17
sipatsymasaka Messages postés 99 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 28 novembre 2014 - 30 nov. 2011 à 12:12
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

jaky1212 Messages postés 126 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 4 mars 2013 8
30 nov. 2011 à 08:27
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
sipatsymasaka Messages postés 99 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 28 novembre 2014 6
30 nov. 2011 à 08:37
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
sipatsymasaka Messages postés 99 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 28 novembre 2014 6
30 nov. 2011 à 09:34
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
sipatsymasaka Messages postés 99 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 28 novembre 2014 6
30 nov. 2011 à 09:52
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sipatsymasaka Messages postés 99 Date d'inscription vendredi 1 octobre 2010 Statut Membre Dernière intervention 28 novembre 2014 6
30 nov. 2011 à 12:12
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