Rechercher : dans
Par :

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

Dernière réponse le 7 fév 2008 à 21:45:05 juanou, le 7 fév 2008 à 19:28:03 
 Signaler ce message aux modérateurs

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...

Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « expressions régulières : galère galère ! » dans :
PHP - Expressions régulières Voir Qu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
[RegExp] Récupérer une adresse IP VoirFinalité Mise en œuvre Explications Interprétation du motif Récupérer une adresse IP Finalité Pour récupérer une IP dans un fichier texte, fichiers journaux, pages web, etc. Mise en œuvre L'expression régulière suivante combinée à la...
Google - Recherche d'une expression exacte VoirLorsque l’on souhaite faire la recherche d’une expression exacte, il suffit de mettre cette expression entre guillemets. Exemple : "animal domestique" référencera uniquement les sites comportant l’expression "animal domestique".
Sed - Trucs et astuces VoirSubstitution Affichage Suppression Espace et tabulation Ligne vide Intervalle régulier Divers Joindre des lignes Affichage insensible à la casse Substitution Substituer "foo" par "bar" à chaque ligne Seulement la 1ère...
Javascript - L'objet RegExp VoirLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des...

1

vlmath, le 7 fév 2008 à 19:39:12

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

Répondre à vlmath

2

juanou, le 7 fév 2008 à 19:52:39

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 ?

Répondre à juanou

3

juanou, le 7 fév 2008 à 20:13:55

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

Répondre à juanou

4

 vlmath, le 7 fév 2008 à 21:45:05
  • +1

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

Répondre à vlmath