Expressions régulières : galère galère !

Résolu/Fermé
juanou - 7 févr. 2008 à 19:28
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - 7 févr. 2008 à 21:45
Salutla compagnie.
Et salut mes sauveurs, en particulier !

Ca fait des heures que je me casse la tête avec les "expressions régulières" à essayer de vérifier qu'un champ texte de mon formulaire ne contient que les caractères :
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-.0123456789

Je voudrais faire cette vérification :
* d'abord en javascript, dans la page du formulaire, au moment où je le soumets (par ce que c'est assez immédiat comme procédure)
* puis en php, dans page de traitement du formulaire (pour les énervants personnages qui désactivent le javascript)

Voici grosso modo ce que je comptais faire en php :
if ( ereg("[expression regulière]", $login) ) { cestcool(); }
else { cestpascool(); }

Je sais pas si ereg() fonctionne aussi en javascript...


A votre bon coeur Messieurs-Dames, pour un webmestre à la dérive...

3 réponses

vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
7 févr. 2008 à 21:45
Mais c'est bien normal ... Quand on peut aider ..

Pour dire que c'est résolu, tu dois monter tout en haut, t'as une case avec un bouton radio ...
Et Hop, c'est marqué comme résolu
1
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
7 févr. 2008 à 19:39
Salut,

Pour l'expression régulière, tu peux mettre ça :

^[a-zA-Z0-9_\-.]{1,}$

Ou sans le \, je n'ai pas testé, c'est à voir ...

Pour le javascript, j'ai trouvé quelque chose ... :
var MonReg = /[0-9]{3}-[0-9]{3}-[0-9]{2}.[0-9]{2}/;

with(document){
writeln(MonReg.test("123-456-78.90"));// true
writeln(MonReg.test("4567-76-322.1"));// false
}

Pas testé ...

Source du code javascript.

@Bientôt
0
Merci vlmath

Pour le php, ça marche impec.
La solution pour le tiret, c'était de le mettre juste après le crochet ouvrant. (Je sais plus où j'ai lu ça.)

ça nous donne :

^[-a-zA-Z0-9_.]{1,}$

Ah, comme c'est beau ! On dirait Verlaine.


Pour le javascript, je me suis pas encore penché dessus. Je crois que j'en ai assez pour aujourd'hui.

Merci en tout cas. Grace à toi je vais pouvoir trouver le sommeil ce soir.
Ciao.


ps : comment on fait pour dire que le sujet est résolu ?
0
Ca y est, j'ai tout.
Pour ceux qui galèreront après moi, voilà comment je m'en suis sorti :



la fonction javascript :

function Verif()
{
var reg_login = /^[-a-zA-Z0-9_.]{1,}$/;
if (!(reg_login.test(document.forms['formu'].elements['login'].value)))
{
alert("Le login ne doit comporter que des lettres de l'alphabet non accentuées et des chiffres");
return false;
}
}

( à insérer comme ça dans le formulaire : <form action="action.php" name="formu" onSubmit="return Verif(this.form);"> )


et la vérification php :

if (ereg("^[-a-zA-Z0-9_.]{1,}$", $login)) { cestcool()'; }



Encore merci, vlmath
0