probleme avec preg_match

Mammouth du PHP | 558 Messages

29 nov. 2010, 22:37

Bonjour,
le problème c'est que quelque soit la valeur de $_POST['colis'] cela me renvoie que c'est une valeur correct.
je voudrais que la valeurs de $_POST['colis'] commance par 8N suivi de 11 caractères numerique de 0 à 9 et rien d'autre après.
après test.
j'ai entré 8N puis quelque chiffres et des lettre et des chiffres et le regex à concidérer que cela était exact. de meme pour la valeur attendu.
merci de m'expliqué ou je me suis trompé dans mon regex.
c'etait plus simple avec ereg(); :(
if(preg_match("/^8N([0-9]{11})$/",$_POST['colis']))
{
$colis=$_POST['colis'];
}
else
{
echo'erreur dans le numero de colissimo';
exit();
}

devlop78
Invité n'ayant pas de compte PHPfrance

30 nov. 2010, 01:25

T'as essayé /^(8N[0-9]{11})$/ ou quelque chose de ce genre ?

Mammouth du PHP | 558 Messages

30 nov. 2010, 10:36

Ta méthode fonctionne, mais je ne comprend pas c'est quoi la différence entre :
"/^8N([0-9]{11})$/" et "/^(8N[0-9]{11})$/".
Pour moi c'est la même chose mais seul ta méthode fonctionne ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 nov. 2010, 11:30

Il n'y a à priori pas de différence en dehors de la chaine capturée... et si je teste ton masque, il fonctionne tout aussi bien...
Tu dois même pouvoir te passer des parenthèses si tu vérifies juste le format et ne traites pas la chaine capturée (ou alors il nous manque une partie du code)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

devlop78
Invité n'ayant pas de compte PHPfrance

30 nov. 2010, 12:42

Oui là pas de chaine capturée, mais je suis plutot très nul en expressions régulières ... pas bien ^^

ViPHP
ViPHP | 5462 Messages

30 nov. 2010, 12:46

Oui là pas de chaine capturée, mais je suis plutot très nul en expressions régulières ... pas bien ^^
j'utilise ca pour met regex : http://gskinner.com/RegExr/ (même si il est moins poussé que les regex PHP)

devlop78
Invité n'ayant pas de compte PHPfrance

30 nov. 2010, 12:56

Cool !! En plus c'est une RIA en Flex ;)

devlop78
Invité n'ayant pas de compte PHPfrance

30 nov. 2010, 13:01

Nickel, test en temps réel j'ai pu sortir /[a-z\-\._]{1,100}@[a-z\-\._]{1,100}/gim pour tester une adresse e-mail (là comme ça vite fait). Merci :D

devlop78
Invité n'ayant pas de compte PHPfrance

30 nov. 2010, 13:15

Hihihi

SELECT * FROM `residences` WHERE `adresse` REGEXP '[a-z]{1,}@[a-z]{1,}\\.[a-z]{1,5}'

Nikel :p je vais pouvoir faire une contrainte check sur un champ mail avec une expression de ce type - puis créer un domaine "email" - c'est beau le SGBDR !

Mammouth du PHP | 558 Messages

30 nov. 2010, 18:00

merci à tous pour votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 nov. 2010, 18:10

Hihihi

SELECT * FROM `residences` WHERE `adresse` REGEXP '[a-z]{1,}@[a-z]{1,}\\.[a-z]{1,5}'

Nikel :p je vais pouvoir faire une contrainte check sur un champ mail avec une expression de ce type - puis créer un domaine "email" - c'est beau le SGBDR !
oublie pas les minuscules majuscule et caractère spéciaux :) => un exemple sur expreg.com

@+
Il en faut peu pour être heureux ......

devlop78
Invité n'ayant pas de compte PHPfrance

30 nov. 2010, 20:09

Ouai mais c'était un essai rapide. PostegreSQL me sauve la vie. J'ai pu créer un domaine email NOT NULL CHECK( ...)

qui me permettra (bien que ce ne soit que des essais :p) de rajouter des champs "email" à volonté sans redéfinir la contrainte à chaque fois. Mais c'était un petit saut d'humeur car on n'est pas vraiment dans le bon forum :D Sinon je peux aussi vous raconter comment j'ai rajouter un trigger et mes doutes sur le rollback (tiens faut que je vois la réaction de php face à un rollback d'une procédure stockée) et tout :p