regex matchant n° de tél (éventuellement vide)

Le
lmallia
Bonjour,

l'utilisation de la regex ci-dessous me permet de va lider un numéro de tel obligatoire mais dans mon cas de figure ce champ peut être vide et dans ce cas la regex m'indique que la chaine vide ne valide pas la regex

^(+){0,1}[0-9/ -.]{8,25}$

En fait je voudrais étendre cette regex pout qu'elle intègre les champs vides/nuls

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mickaël Wolff
Le #17304031
lmallia a écrit :
^(+){0,1}[0-9/ -.]{8,25}$



Pourquoi 8 ? Pourquoi 25 ?


En fait je voudrais étendre cette regex pout qu'elle intègre les champs
vides/nuls



return ( tel.length == 0 || tel.match(/^+?[0-9/ -.]{8,25}$/) ? true
: false ;

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Olivier Miakinen
Le #17304021
Le 22/09/2008 18:28, lmallia a écrit :

l'utilisation de la regex ci-dessous me permet de va lider un numéro de tel
obligatoire mais dans mon cas de figure ce champ peut être vide et dans ce cas
la regex m'indique que la chaine vide ne valide pas la regex

^(+){0,1}[0-9/ -.]{8,25}$



Je me permets de commencer par simplifier l'expression car plus elle est
simple et plus facilement on peut comprendre ce qu'elle fait.

1) Je remplace {0,1} par ? (matche 0 ou 1 fois).

2) Je remplace (+) par + (pour un seul caractère les parenthèses sont
inutiles, sauf bien sûr si les parenthèses devaient être capturantes).

3) Je remplace . par . (le caractère . perd son rôle spécial dans une
classe de caractères entre crochets).

4) Je remplace - par - en le mettant juste après le crochet ouvrant (le
caractère - dans une classe de caractères perd son rôle spécial quand il
est le premier).

Cela donne donc ceci, que je trouve bien plus lisible :

^+?[-0-9/ .]{8,25}$

En fait je voudrais étendre cette regex pout qu'elle intègre les champs
vides/nuls



Il suffit de rajouter un « ? » (matche 0 ou 1 fois) en regroupant par
des parenthèses l'ensemble de l'expression :

^(+?[-0-9/ .]{8,25})?$
Olivier Miakinen
Le #17304151
Le 22/09/2008 19:00, Mickaël Wolff a écrit :

^(+){0,1}[0-9/ -.]{8,25}$



/^+?[0-9/ -.]{8,25}$/



D'accord pour « +? » au lieu de « (+){0,1} ».
D'accord pour « . » au lieu de « . ».
D'accord pour « - » au lieu de « - » *mais* pas à cet endroit.
Pas d'accord pour « / » (c'est inutile ici).
Patrick Mevzek
Le #17304431
Le Mon, 22 Sep 2008 19:01:43 +0200, Olivier Miakinen a écrit:
Il suffit de rajouter un « ? » (matche 0 ou 1 fois) en regroupant par
des parenthèses l'ensemble de l'expression :

^(+?[-0-9/ .]{8,25})?$



Pour information, les chaînes E164 sont définies ainsi :
<maxLength value="17"/>

--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
Dr J R Stockton
Le #17306921
Le 22 Sep, 6:21 pm, Patrick Mevzek ecrit:

Pour information, les chaînes E164 sont définies ainsi :
                <maxLength value="17"/>



Merci. Maintenant en

--
(c) John Stockton, near London, UK. Posting with Google.
Mail: J.R.""""""""@physics.org or (better) via Home Page at
Web: FAQish topics, acronyms, links, etc.; Date, Delphi, JavaScript, ....|
Mickaël Wolff
Le #17309691
Olivier Miakinen a écrit :

D'accord pour « +? » au lieu de « (+){0,1} ».
D'accord pour « . » au lieu de « . ».
D'accord pour « - » au lieu de « - » *mais* pas à cet endroit.
Pas d'accord pour « / » (c'est inutile ici).



L'habitude de sed ;)

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Publicité
Poster une réponse
Anonyme