web-dev-qa-db-fra.com

Validation des expressions régulières pour le numéro de téléphone indien et le numéro de téléphone portable

Je souhaite valider les numéros de téléphone indiens ainsi que les numéros mobiles. Le format du numéro de téléphone et du numéro de mobile est le suivant:

Pour le numéro de ligne terrestre

03595-259506
03592 245902
03598245785

Pour numéro de mobile

9775876662
0 9754845789
0-9778545896
+91 9456211568
91 9857842356
919578965389

Je voudrais l'expression régulière dans une expression régulière. J'ai essayé le regex suivant mais il ne fonctionne pas correctement.

{^\+?[0-9-]+$}
17
Iswar

Pour le numéro de ligne terrestre

03595-259506
03592 245902
03598245785

vous pouvez l'utiliser

\ d {5} ([-] *)\d {6}

NOUVEAU pour tous;)

OLD: ((\+*)(0*|(0 )*|(0-)*|(91 )*)(\d{12}+|\d{10}+))|\d{5}([- ]*)\d{6}
NEW: ((\+*)((0[ -]+)*|(91 )*)(\d{12}+|\d{10}+))|\d{5}([- ]*)\d{6}

9775876662
0 9754845789
0-9778545896
+91 9456211568
91 9857842356
919578965389

03595-259506
03592 245902
03598245785

ce site est utile pour moi, et maby pour vous.;) http://gskinner.com/RegExr/

16
M.R

Cela fonctionne très bien:

\+?\d[\d -]{8,12}\d

Allumettes:

03598245785
9775876662
0 9754845789
0-9778545896
+91 9456211568
91 9857842356
919578965389
987-98723-9898
+91 98780 98802
06421223054
9934-05-4851
WAQU9876567892
ABCD9876541212
98723-98765

Ne correspond pas:

2343
234-8700
1 234 765
8
VineetChirania

Utilisez l'expression régulière suivante

^(\+91[\-\s]?)?[0]?(91)?[789]\d{9}$

Cela prendra en charge les formats suivants:

  1. 8880344456
  2. +918880344456
  3. +91 8880344456
  4. + 91-8880344456
  5. 08880344456
  6. 918880344456
5
Minkesh Jain

Pour les numéros mobiles et fixes: (?:\s+|)((0|(?:(\+|)91))(?:\s|-)*(?:(?:\d(?:\s|-)*\d{9})|(?:\d{2}(?:\s|-)*\d{8})|(?:\d{3}(?:\s|-)*\d{7}))|\d{10})(?:\s+|)

Explication:

(?:\s+|)                    // leading spaces
((0|(?:(\+|)91))            // prefixed 0, 91 or +91
(?:\s|-)*                   // connecting space or dash (-)
(?:(?:\d(?:\s|-)*\d{9})|    // 1 digit STD code & number with connecting space or dash
(?:\d{2}(?:\s|-)*\d{8})|    // 2 digit STD code & number with connecting space or dash
(?:\d{3}(?:\s|-)*\d{7})|    // 3 digit STD code & number with connecting space or dash
\d{10})                     // plain 10 digit number
(?:\s+|)                    // trailing spaces

Je l'ai testé sur le texte suivant

9775876662
0 9754845789
0-9778545896
+91 9456211568
91 9857842356
919578965389

0359-2595065
0352 2459025
03598245785
07912345678
01123456789
sdasdcsd
+919898101353
dasvsd0 
+91 dacsdvsad
davsdvasd

0112776654
2
parth

Tous les numéros mobiles en Inde commencent par 9 , 8 , 7 ou 6 . Maintenant, il est possible que vous ne vous souciez pas des préfixes (+91 ou 0). Si tel est votre scénario, vous pouvez prendre l'aide du site Web regextester.com ou vous pouvez utiliser r '^ (+ 91 [-\s]? )? [0]? (91)? [789]\d {9} $ '

Et si vous souhaitez valider le numéro de téléphone avec des préfixes (+91 ou 0), utilisez: r '^ [9876]\d {9} $' .

0