Posez votre question Signaler

Regex avec javascript [Résolu]

rukire 95Messages postés 9 mars 2009Date d'inscription - Dernière réponse le 23 juin 2010 à 17:55
Bonjour,
Je galère a écrire une fonction avec javascript,
en fait lorsque l'utilisateur tape quelque chose donc onkeyup="...(this)" dans mon formulaire a l'élément souhaité.
la chaine ne doit pas commencer par un chiffre et ne doit pas contenir d'espace, de tiret et de @ (les caractères interdit dans une varible perl en gros)
voila mon script :
function verifsaisie(elem)
{
var valeur = elem.value;
var reg = new RegExp("^[^0-9][^@ -]", "gi");
if(valeur.match(reg))
{
alert("Vous ne devez pas entrer de caractères spéciaux !\n(début de chaine par un chiffre, pas d'espace, ni de tiret, ni d'arobase)");
elem.value = "";
}
}
si quelqu'un voit pourquoi ca ne marche pas ou a une idée, je lui en suis très reconnaissante de m'aider.
Sinon merci quand même d'avoir lu
Lire la suite 

Regex avec javascript »

Suggestions
10 réponses
Réponse
+1
moins plus
function verifSaisie(evt)
{
var keyCode = evt.which ? evt.which : evt.keyCode;
var mask = '^[0-9]{1,3}|\u0009|\u0008|\u000D$';
var reg = new RegExp(mask,"g");
if(!reg.test(String.fromCharCode(keyCode))){
return false;
}
}

et je mets onkeypress="return verifSaisie(event);" dans l'input
voici mon code, il marche, remplacé le mask par le votre. Par contre ce que je fais c'est juste que j'empêche l'insertion des éléments contenus dans le mask. Pour afficher l'alerte il faudrait le faire juste avant le "return false;"
th@o - 23 juin 2010 à 15:34
que doit contenir la variable evt dans ta fonction
th@o - 23 juin 2010 à 17:55
non c'est bon j'ai compris
Ajouter un commentaire
Réponse
+1
moins plus
J'ai trouvé ! en fait j'avais déja un js qui vérifiait que le nom saisie n'existe pas déja dans un tableau donné en paramètre et donc a ca j'ai ajouté mon code et maintenant ca marche !

js :

function verif_nom (elem,tab,i)
{
// tab est une chaine de caractère séparé par des virgules
// verification que l'element saisie elem ne se trouve pas dans tab
// i indice de elem precedent
var tabnom=tab.split(",");
var newname = elem.value;
for (var j=0;j<tabnom.length;j++)
{
if(i != j)
{
if (tabnom[j] == newname)
{
alert("Le nom entré existe déjà ! Entrez en un nouveau svp");
elem.value = "";
}
}

}
var valeur = elem.value;
var reg = new RegExp("^[a-z._][_.a-z0-9]+$", "gi");

if(valeur.match(reg))
{}
else
{
alert("Vous ne devez pas entrer de caractères spéciaux !\n(début de chaine par un chiffre, pas d'espace, ni de tiret, ni d'arobase)");
elem.value = "";
}
}

input :

$nom='nom'.$i; //choix du nom (avec vérification existance)
echo '<tr><td><label for="nom"><a class="normal" href="guide.php#nom" target="_blank">Nom</a></label> : <input type="text" id="nom" name="'.$nom.'" onblur="verif_nom(this,\''.$str.'\','.$k.');" /></td></tr>';

Merci beaucoup
Ajouter un commentaire
Réponse
+0
moins plus
merci mais je ne comprend pas tout à ce qui est fait, et ca n'a pas l'air de marcher (ma méthode doit marcher mais je n'arrive pas a trouver la bonne regex ^^)
NookZ- 17 mars 2009 à 16:05
Utilisez ceci pour tester, j'essaie de trouver la bonne regexp en attendant : http://www.annuaire-info.com/outil-referencement/expression-reguliere/
Ajouter un commentaire
Réponse
+0
moins plus
avec ce que tu m'as donné j'ai trouvé ca : ^[a-z][_.a-z0-9]+$
mais ca marche pas très bien ! quoi que je tape ca m'affiche l'erreur :s
merci
Ajouter un commentaire
Réponse
+0
moins plus
est ce que quelqu'un peut m'aider, avec la regex donné hier, je tape n'importe quoi (une lettre, un chiffre, etc) et ca m'affiche l'alerte, quelqu'un peu m'aider ?
Merci d'avance !
NookZ- 18 mars 2009 à 09:35
Je vous conseille de télécharger le module firefox, il vous permettra de débugger car pour le moment je ne vois pas d'erreur.

Je viens de tester votre expression, elle retourne faux quel que soit le cas en utilisant le lien que je vous ai fourni, je cherche une parade
Ajouter un commentaire
Réponse
+0
moins plus
ben avec le lien d'hier moi ca marchait ! donc voila je suis complètement perdu et dans une impasse
Ajouter un commentaire
Ce document intitulé « regex avec javascript » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?