Discussion:
regexp
(trop ancien pour répondre)
denisb
2007-07-03 16:02:16 UTC
Permalink
bonjour,
je me cherche un contrôle de saisie :

dans un tableau $_POST, je ne veux accepter que ce qui

commence par la lettre q
suivi de 2 à 7 caractères parmi
soit des chiffres (0 à 9)
soit un tiret bas _
soit la lettre c

exemple :
q6_2_2c est accepté
q01_4 est accepté
qc est accepté
q6_2_2_1c est refusé
q6_a_2_c est refusé
d01 est refusé

j'en suis à : preg_match('/(^q)([0-9_c]{1,7})/', $_POST['saisie'])
et (bien sûr) ça ne marche toujours pas.... :-(

merci si (si si !) coup de pouce
--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|\_ =="
Olivier Miakinen
2007-07-03 16:45:00 UTC
Permalink
Post by denisb
dans un tableau $_POST, je ne veux accepter que ce qui
commence par la lettre q
suivi de 2 à 7 caractères parmi
soit des chiffres (0 à 9)
soit un tiret bas _
soit la lettre c
et rien d'autre derrière ?
Post by denisb
q6_2_2c est accepté
q01_4 est accepté
qc est accepté
q6_2_2_1c est refusé
q6_a_2_c est refusé
d01 est refusé
Selon que la réponse à ma question soit oui ou non :
'/^q[0-9_c]{2,7}$/'
'/^q[0-9_c]{2}/'

Note que dans le second cas il n'est pas nécessaire de chercher quoi
que ce soit après le 2e « chiffre ou _ ou c » puisque ta règle sera
forcément respectée.
Post by denisb
j'en suis à : preg_match('/(^q)([0-9_c]{1,7})/', $_POST['saisie'])
1) Les parenthèses ne servent à rien.
2) Tu avais dit 2 à 7 caractères, pas 1 à 7.
Post by denisb
et (bien sûr) ça ne marche toujours pas.... :-(
« Ça ne marche pas » est un peu vague quand tu as une série de tests
comme tu l'as. Tu aurais pu nous dire lesquels répondaient vrai au lieu
de faux, et lesquels répondaient faux au lieu de vrai. Et dans le cas où
ça répondrait tout le temps vrai ou tout le temps faux, tu pourrais
suspecter un problème indépendant de la regexp (comme exemple le plus
stupide mais qui arrive parfois malheureusement : une redéfinition de la
fonction preg_match).
Olivier Miakinen
2007-07-03 16:49:44 UTC
Permalink
Post by Olivier Miakinen
et rien d'autre derrière ?
Post by denisb
q6_2_2_1c est refusé
'/^q[0-9_c]{2,7}$/'
denisb
2007-07-03 21:10:39 UTC
Permalink
Post by Olivier Miakinen
Post by denisb
dans un tableau $_POST, je ne veux accepter que ce qui
commence par la lettre q
suivi de 2 à 7 caractères parmi
soit des chiffres (0 à 9)
soit un tiret bas _
soit la lettre c
et rien d'autre derrière ?
non.
Post by Olivier Miakinen
'/^q[0-9_c]{2,7}$/'
voilà.
et bien merci (encore...) !
Post by Olivier Miakinen
Post by denisb
j'en suis à : preg_match('/(^q)([0-9_c]{1,7})/', $_POST['saisie'])
2) Tu avais dit 2 à 7 caractères, pas 1 à 7.
autant pour moi...
(au temps pour moi !, ho tant pour moi ?, au tambour moï)
Post by Olivier Miakinen
« Ça ne marche pas » est un peu vague
oh ben ça acceptait q9_1_2_3_4 par exemple
Post by Olivier Miakinen
une redéfinition de la fonction preg_match.
holla !!!
même pas cap'
--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|\_ =="
Continuer la lecture sur narkive:
Loading...