par
Cyrano » 14 déc. 2006, 09:45
Un détail : le "-" ne fait pas partie de ce que l'on compose sur un clavier et ne sert que pour la mise en forme destinée à l'affichage. Donc pour valider, je te suggère de créer une variable temporaire ne comportant que les caractères numériques en faisant sauter le "-".
Donc tu pourrais commencer par reformater le numéro envoyé pour la validation. Par exemple :
$numtmp = preg_replace("#[^\d]*#", "", $telephone);
$phone = "#^\d{6,10}$#";
/* On valide $numtmp et non $telephone */
if (($telephone) && !(preg_match($phone,$numtmp)))
{
print "<p>Le numéro de téléphone doit comporter seulement des chiffres, de 6 à 10 chiffres sans espaces ni tirets</p>\n";
}
Autre possibilité : dans ton formulaire, tu pourrais prévoir une liste déroulante des indicatifs régionaux ià coté de la zone de saisie du numéro lui-même, par exemple une liste avec 418, 514, 450, etc... Et éventuellement tu pourrais ajouter un petit JavaScript interdisant la saisie d'autre chose que de numéros à l'aide d'un évènement
onkeyup.
Un détail : le "-" ne fait pas partie de ce que l'on compose sur un clavier et ne sert que pour la mise en forme destinée à l'affichage. Donc pour valider, je te suggère de créer une variable temporaire ne comportant que les caractères numériques en faisant sauter le "-".
Donc tu pourrais commencer par reformater le numéro envoyé pour la validation. Par exemple :
[php]$numtmp = preg_replace("#[^\d]*#", "", $telephone);
$phone = "#^\d{6,10}$#";
/* On valide $numtmp et non $telephone */
if (($telephone) && !(preg_match($phone,$numtmp)))
{
print "<p>Le numéro de téléphone doit comporter seulement des chiffres, de 6 à 10 chiffres sans espaces ni tirets</p>\n";
}[/php]
Autre possibilité : dans ton formulaire, tu pourrais prévoir une liste déroulante des indicatifs régionaux ià coté de la zone de saisie du numéro lui-même, par exemple une liste avec 418, 514, 450, etc... Et éventuellement tu pourrais ajouter un petit JavaScript interdisant la saisie d'autre chose que de numéros à l'aide d'un évènement [i]onkeyup[/i].