par
Ryle » 27 janv. 2009, 18:03
Y a quelques petites choses qui ne vont pas...
- Les parenthèses, dans une expression régulière, servent à capturer des données. Si tu dois utiliser les caractères '(' ou ')' dans ton expression, il faut alors les échapper en les faisant préceder d'un antislash : '\(' ou '\)' , ainsi php considère qu'il s'agit de simple caractères.
- Le nombre de caractères : si tu mets des tirets ou des espaces en plus de tes 7 chiffres, tu ne peux pas conserver que 7 caractères ({7}). Il te faut donc soit étendre le nombre de caractères proposer (par exemple entre 7 et 9 : {7,9}) soit revoir le format de ton expression pour tester la présence potentiel de ces éléments à des endroits spécifiques...
Voici un exemple de pattern qui correspond aux exemples que tu as donné ci-dessus..
/^[0-9]{1}[ -]?\([0-9]{3}\)[ -]?[0-9 -]{7,9}$/
^ : la chaine doit commencer par
[0-9]{1} : un chiffre
[ -]? : suivi d'un espace, d'un tiret ou pas
\([0-9]{3}\) : suivi de 3 chiffres entre parenthèses
[ -]? : suivi d'un espace, d'un tiret ou pas
[0-9 -]{7,9} : suivi de 7 à 9 espaces, tirets ou chiffres
$ : et doit terminer la chaine.
Y a quelques petites choses qui ne vont pas...
- Les parenthèses, dans une expression régulière, servent à capturer des données. Si tu dois utiliser les caractères '(' ou ')' dans ton expression, il faut alors les échapper en les faisant préceder d'un antislash : '\(' ou '\)' , ainsi php considère qu'il s'agit de simple caractères.
- Le nombre de caractères : si tu mets des tirets ou des espaces en plus de tes 7 chiffres, tu ne peux pas conserver que 7 caractères ({7}). Il te faut donc soit étendre le nombre de caractères proposer (par exemple entre 7 et 9 : {7,9}) soit revoir le format de ton expression pour tester la présence potentiel de ces éléments à des endroits spécifiques...
Voici un exemple de pattern qui correspond aux exemples que tu as donné ci-dessus..
[php]/^[0-9]{1}[ -]?\([0-9]{3}\)[ -]?[0-9 -]{7,9}$/[/php]
^ : la chaine doit commencer par
[0-9]{1} : un chiffre
[ -]? : suivi d'un espace, d'un tiret ou pas
\([0-9]{3}\) : suivi de 3 chiffres entre parenthèses
[ -]? : suivi d'un espace, d'un tiret ou pas
[0-9 -]{7,9} : suivi de 7 à 9 espaces, tirets ou chiffres
$ : et doit terminer la chaine.