Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

6 réponses
Avatar
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

6 réponses

Avatar
Mickaël Wolff
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
Avatar
Olivier Miakinen
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})?$
Avatar
Olivier Miakinen
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).
Avatar
Patrick Mevzek
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 :
<pattern value="(+[0-9]{1,3}.[0-9]{1,14})?"/>
<maxLength value="17"/>

--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
<http://www.dotandco.net/> <http://www.dotandco.com/>
Avatar
Dr J R Stockton
Le 22 Sep, 6:21 pm, Patrick Mevzek a
ecrit:

Pour information, les chaînes E164 sont définies ainsi :
        <pattern value="(+[0-9]{1,3}.[0-9]{1,14})?"/>
        <maxLength value="17"/>



Merci. Maintenant en
<http://www.merlyn.demon.co.uk/js-valid.htm#VTN>.

--
(c) John Stockton, near London, UK. Posting with Google.
Mail: J.R.""""""""@physics.org or (better) via Home Page at
Web: <URL:http://www.merlyn.demon.co.uk/>
FAQish topics, acronyms, links, etc.; Date, Delphi, JavaScript, ....|
Avatar
Mickaël Wolff
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