Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

regexp

3 réponses
Avatar
newdb
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 !
' `) /
|\_ =="

3 réponses

Avatar
Olivier Miakinen

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 ?

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é


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.

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.

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

Avatar
Olivier Miakinen
Le 03/07/2007 18:45, je demandais à denisb :

et rien d'autre derrière ?


Ah, j'ai ma réponse :

q6_2_2_1c est refusé



Donc :

'/^q[0-9_c]{2,7}$/'



Avatar
newdb
Olivier Miakinen <om+ wrote:
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.

'/^q[0-9_c]{2,7}$/'


voilà.
et bien merci (encore...) !

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ï)

« Ça ne marche pas » est un peu vague


oh ben ça acceptait q9_1_2_3_4 par exemple

une redéfinition de la fonction preg_match.


holla !!!
même pas cap'

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="