23

我想验证印度电话号码和手机号码。电话号码和手机号码的格式如下:

对于陆线号

03595-259506
03592 245902
03598245785

对于手机号码

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

我想要一个正则表达式中的正则表达式。我尝试了以下正则表达式,但它无法正常工作。

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

13 回答 13

21

对于陆线号码

03595-259506
03592 245902
03598245785

你可以用这个

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

对所有人来说都是新的;)

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

这个网站对我有用,也许对你有用。;)http://gskinner.com/RegExr/

于 2013-08-21T07:46:59.270 回答
13

使用以下正则表达式

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

这将支持以下格式:

  1. 8880344456
  2. +918880344456
  3. +91 8880344456
  4. +91-8880344456
  5. 08880344456
  6. 918880344456
于 2016-02-09T08:02:04.063 回答
10

这工作得很好:

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

火柴:

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

不匹配:

2343
234-8700
1 234 765
于 2015-01-12T15:16:19.340 回答
4

对于移动和固定号码:(?:\s+|)((0|(?:(\+|)91))(?:\s|-)*(?:(?:\d(?:\s|-)*\d{9})|(?:\d{2}(?:\s|-)*\d{8})|(?:\d{3}(?:\s|-)*\d{7}))|\d{10})(?:\s+|)

解释:

(?:\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

我已经在以下文字上对其进行了测试

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

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

0112776654
于 2016-05-24T11:53:35.643 回答
3

我将以下内容用于我的一个 python 项目

正则表达式

(\+91)?(-)?\s*?(91)?\s*?(\d{3})-?\s*?(\d{3})-?\s*?(\d{4})

Python 用法

re.search(re.compile(r'(\+91)?(-)?\s*?(91)?\s*?(\d{3})-?\s*?(\d{3})-?\s*?(\d{4})'), text_to_search).group()

解释

(\+91)? // optionally match '+91'
(91)?   // optionally match '91'
-?      // optionally match '-'
\s*?    // optionally match whitespace
(\d{3}) // compulsory match 3 digits
(\d{4}) // compulsory match 4 digits

经过测试并适用于

9992223333
+91 9992223333
91 9992223333
91999 222 3333
+91999 222 3333
+91 999-222-3333
+91 999 222 3333
91 999 222 3333
999 222 3333
+919992223333
于 2020-01-16T18:57:33.670 回答
3

手机号码:

const re = /^[6-9]{1}[0-9]{9}$/;
于 2021-05-26T12:45:15.987 回答
0

印度的所有手机号码都以9、8、76开头现在,您可能不会在意前缀(+91 或 0)。如果这是您的情况,那么您可以从网站regextester.com获得帮助,或者您可以使用r'^(+91[-\s]?)?[0]?(91)?[789]\d{ 9}$'

如果您想验证带有前缀(+91 或 0)的电话号码,请使用:r'^[6-9]\d{9}$'

于 2019-03-06T11:47:48.300 回答
0

您可以像这样使用正则表达式。

/^[(]+\ ++\d{2}[)]+[^0]+\d{9}/

于 2019-11-14T11:56:34.427 回答
0

对于印度手机号码

正则表达式验证 11 或 12(以 0 或 91 开头)数字

String regx = "(0/91)?[7-9][0-9]{9}";

String mobileNumber = "09756432848";

check 

if(mobileNumber.matches(regx)){
   "VALID MOBILE NUMBER"
}else{
   "INVALID MOBILE NUMBER"
}

"(0/91)?"您可以通过从正则表达式中删除来检查 10 位数的手机号码,即 regx

于 2020-04-15T18:27:12.807 回答
0

您可以实现以下正则表达式 regex = '^[6-9][0-9]{9}$'

于 2020-07-23T05:44:17.753 回答
-1

您可以像这样使用正则表达式:

   ^[0-9\-\(\)\, ]+$
于 2013-08-29T08:49:24.473 回答
-1

所有固定电话号码和手机号码

^[\d]{2,4}[- ]?[\d]{3}[- ]?[\d]{3,5}|([0])?(\+\d{1,2 }[- ]?)?[789]{1}\d{9}$

于 2017-08-31T11:28:39.630 回答
-2
var phonereg = /^(\+\d{1,3}[- ]?)?\d{10}$/;
于 2017-06-22T10:20:59.463 回答