regexp : téléphone
23 messages
• Page 1 sur 2 • 1, 2
-

rudddy - WRInaute accro

- Messages: 2570
- Inscription: 1 Aoû 2007
regexp : téléphone
Bonjour,
j'aimerais contrôler un champ téléphone de formulaire suivant les précisions suivantes :
- 7 chiffres au min (au max, je m'en fiche)
- que des chiffres
- 5 caractères spéciaux autorisés : -, _, ESPACE, /, .
J'ai trouvé cela :
mais c'est sur 10 chiffres et ne correspond pas à mes caractères spéciaux
merci à vous
j'aimerais contrôler un champ téléphone de formulaire suivant les précisions suivantes :
- 7 chiffres au min (au max, je m'en fiche)
- que des chiffres
- 5 caractères spéciaux autorisés : -, _, ESPACE, /, .
J'ai trouvé cela :
- Code: Tout sélectionner
/^0[0-9]([ .-]?[0-9]{2}){4}$/;
mais c'est sur 10 chiffres et ne correspond pas à mes caractères spéciaux
merci à vous
-

ortolojf - WRInaute passionné

- Messages: 1676
- Inscription: 14 Aoû 2002
Re: regexp : téléphone
Bonjour
Je ne connais pas les regexp mode prcre, du moins pas le cas des évaluations conditionnelles suivant les valeurs déjà rencontrées.
Il faudrait au moins pouvoir mémoriser le nombre de chiffres, et peut-être aussi, des autres caractères ( ce que tu ne dis pas ).
Il faudrait une description formelle plus complète de la logique que tu souhaite, pour les numéros de téléphone.
Ou bien chercher sur Google...
Bien à vous.
Amicalement.
Jean-François Ortolo
Je ne connais pas les regexp mode prcre, du moins pas le cas des évaluations conditionnelles suivant les valeurs déjà rencontrées.
Il faudrait au moins pouvoir mémoriser le nombre de chiffres, et peut-être aussi, des autres caractères ( ce que tu ne dis pas ).
Il faudrait une description formelle plus complète de la logique que tu souhaite, pour les numéros de téléphone.
Ou bien chercher sur Google...
Bien à vous.
Amicalement.
Jean-François Ortolo
-

rudddy - WRInaute accro

- Messages: 2570
- Inscription: 1 Aoû 2007
Re: regexp : téléphone
merci à toi jf
et aussi medium
voici mes exemples de bons numéros :
01.02.03.04.05
01-02-03-04-05
01/02.03.04.05
01 02 03 04 05
0102030405
mais aussi
331.02.03.04.05
221-02-03-04-05
151/02.03.04.05
541 02 03 04 05
en gros tout ce que les gens ont l'habitude taper quand ils entrent des téléphones !
et aussi medium
voici mes exemples de bons numéros :
01.02.03.04.05
01-02-03-04-05
01/02.03.04.05
01 02 03 04 05
0102030405
mais aussi
331.02.03.04.05
221-02-03-04-05
151/02.03.04.05
541 02 03 04 05
en gros tout ce que les gens ont l'habitude taper quand ils entrent des téléphones !
-

ortolojf - WRInaute passionné

- Messages: 1676
- Inscription: 14 Aoû 2002
Re: regexp : téléphone
Bonjour
Dans ce cas, pour résoudre le problème, il me semble qu'il y a une condtion nécessaire et suffisante : C'est que tu sache et indique, toutes les possibilités de types de séquences de caractères, de manière exhaustive.
La deuxième option, serait de donner, une ou plusieurs formules ( mettons, algorithmiques ), pour valider un numéro de téléphone.
Dans le premier cas, il sera possible de fabriquer une regexp de type posix, répondant à ce que tu souhaites, simplement en faisant une construction du type :
"^(regexp1)|(regexp2)|(regexp3)|...|(regexpn)$"
Dans le deuxième cas, on verra ce qu'on peut faire...
Bien à vous.
Amicalement.
Jean-François Ortolo
Dans ce cas, pour résoudre le problème, il me semble qu'il y a une condtion nécessaire et suffisante : C'est que tu sache et indique, toutes les possibilités de types de séquences de caractères, de manière exhaustive.
La deuxième option, serait de donner, une ou plusieurs formules ( mettons, algorithmiques ), pour valider un numéro de téléphone.
Dans le premier cas, il sera possible de fabriquer une regexp de type posix, répondant à ce que tu souhaites, simplement en faisant une construction du type :
"^(regexp1)|(regexp2)|(regexp3)|...|(regexpn)$"
Dans le deuxième cas, on verra ce qu'on peut faire...
Bien à vous.
Amicalement.
Jean-François Ortolo
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
Re: regexp : téléphone
Une solution alternative autrement :
Dans un premier temps, tu ne garde que les chiffres.
Dans un second temps, tu vérifies qu'il y en est au moins 7.
Mais à mon avis, tu acceptes les N° de plusieurs pays avec ses conditions. donc fiabilité pas géniale.
Dans un premier temps, tu ne garde que les chiffres.
Dans un second temps, tu vérifies qu'il y en est au moins 7.
Mais à mon avis, tu acceptes les N° de plusieurs pays avec ses conditions. donc fiabilité pas géniale.
-

rudddy - WRInaute accro

- Messages: 2570
- Inscription: 1 Aoû 2007
Re: regexp : téléphone
merci de vos avis.
@medium : oui c'est un site multinational
je pourrais faire peut etre un
$tel = eregi_replace("[^0-9]", "", $tel);
pour ne garder que les chiffres
mais ça ne résoudra pas le fait que si les gens tapent des lettres cela bugguera
et sachez que bcp tapent la lettre O à la place du 0 et j'en passe (j'ai vu passer une centaine de milliers de téléphone, donc je sais de quoi je parles)
ou alors bloquer les touches génantes dès le clic sur la touche mais c'est pas trop user friendly à mon goût
ex :
@medium : oui c'est un site multinational
je pourrais faire peut etre un
$tel = eregi_replace("[^0-9]", "", $tel);
pour ne garder que les chiffres
mais ça ne résoudra pas le fait que si les gens tapent des lettres cela bugguera
et sachez que bcp tapent la lettre O à la place du 0 et j'en passe (j'ai vu passer une centaine de milliers de téléphone, donc je sais de quoi je parles)
ou alors bloquer les touches génantes dès le clic sur la touche mais c'est pas trop user friendly à mon goût
ex :
- Code: Tout sélectionner
function valid_tel(evt) {
var keyCode = evt.which ? evt.which : evt.keyCode;
var interdit = 'azertyuiopqsdfghjklmwxcvbnàâäãçéèêëìîïòôöõùûüñ -+&*?!:;.,\t#~"^¨%$£?²¤§%*()[]{}<>|\\/`\'';
if (interdit.indexOf(String.fromCharCode(keyCode)) >= 0) {
return false;
}
}
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
Re: regexp : téléphone
Dans ce cas, un premier contrôle sommaire pour voir que le tel ne contient que des caractères autorisés.
Un second traitement, tu ne garde que les chiffres.
3eme traitement, deux options :
Tu contrôle un minimum de 7 chiffres.
Tu contrôle le nombre de chiffre en relation avec le format du pays concerné (y compris numérotation internationale 033 pour la France il me semble)
Tu ne peux pas faire vraiment autre chose...
Un second traitement, tu ne garde que les chiffres.
3eme traitement, deux options :
Tu ne peux pas faire vraiment autre chose...
-

ortolojf - WRInaute passionné

- Messages: 1676
- Inscription: 14 Aoû 2002
Re: regexp : téléphone
rudddy a écrit:merci jacques je vais le tester.
juste une ptite question bébéte : en js ça donne quoi car il y a des caractères à échapper non ?
Le caractère point ( . ) dans une regexp, signifie n'importe quel caractère.
Il faut donc échapper le point ( \. au lieu de . ).
Quant au reste : l'underscore _ je ne crois pas mais ça ne mange pas de pain, le tiret en début de regexp pas besoin ( mais besoin d'échapper le tiret - en \- si ailleurs qu'en tout début de regexp, sinon c'est un intervalle de caractères. )
Je crois qu'il faut échapper le slash aussi ( \/ au lieu de / ), mais je ne suis pas sûr qu'il ne faille pas mettre : // au lieu de / J'ai un doute à propos des regexp du logiciel awk.
Enfin bref, j'ai pas encore l'Alzeihmer, mais ça ne saurait tarder...
Et puis, il n'y a théoriquement pas de problème à échapper tout qui lève un doute, vu que par exemple, dans une regexp, \a est équivalent à a
Mes deux cents...
Bien à vous.
Amicalement.
Jean-François Ortolo
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: regexp : téléphone
Non, dans une classe (entre des crochets []), le . est un caractère comme un autre, tout comme ?, *, etc.
Les seuls caractères qui ont une signification particulière sont le - (qui doit toujours être au début, sinon c'est une étendue genre A-Z), le \ (qui en PCRE sert à introduire certaines séquences type \d, \w, etc, et qui doit être échappé), le ] évidemment (à échapper), ^ en début de classe (négation, à échapper), et probablement [ (début de [:pseudoclasse:])
Evidemment le / doit toujours être échappé s'il est utilisé comme délimiteur, ce qui est forcément le cas en JS il me semble, non?
Jacques.
Les seuls caractères qui ont une signification particulière sont le - (qui doit toujours être au début, sinon c'est une étendue genre A-Z), le \ (qui en PCRE sert à introduire certaines séquences type \d, \w, etc, et qui doit être échappé), le ] évidemment (à échapper), ^ en début de classe (négation, à échapper), et probablement [ (début de [:pseudoclasse:])
Evidemment le / doit toujours être échappé s'il est utilisé comme délimiteur, ce qui est forcément le cas en JS il me semble, non?
Jacques.
23 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Google rachète Zingku (service de networking pour mobile) - 28-09-2007
- GPhone : Google veut se concentrer sur le logiciel - 22-03-2007
- Captures d'écran de Google Chrome OS - 16-08-2009
- Téléphoner gratuitement par Internet avec Gmail - 26-08-2010
- Le gPhone, téléphone mobile révolutionnaire ? - 30-08-2007
- Filtre Google Analytics pour trouver les questions des visiteurs - 14-09-2010
- Formation Google Analytics Paris : 1er au 4 février 2011 - 20-01-2011
- Nexus One de Google contre iPhone d'Apple... - 06-01-2010
Consultez la description détaillée des produits ou services de Google suivants : Google Send to Phone
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

