码迷,mamicode.com
首页 > 其他好文 > 详细

大陆--电话正则表达式

时间:2015-04-25 00:15:50      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:正则表达式

1. 手机

技术分享

http://www.baike.com/wiki/%E7%94%B5%E8%AF%9D%E5%8F%B7%E7%A0%81


086-574-87376060

+86-0574-87376060

+86 574 8737 6060

 

+86-013738258505

+86 137 3825 8505
(86)13738258505
(86-573)2651630
如果是7位数,在第3位和第4位中间应该有个间隔,

应该是:+86 573 265 1630 或(86-573)2651630  ;  

如果是8位数,在每4位中间应该有个间隔,

应该是:+86 573 8265 1630 或(86-573)82651630

+86138-0013-8000
 

我国使用的手机号码为11位,其中各段有不同的编码方向:

3———网络识别号;

4-7———地区编码;

8-11———用户号码

现有手机号段:

移动:139   138  137   136   135  134   147   150  151   152   157  158    159   178 182   183   184  187   188 

联通:130   131   132  155   156   185  186   145   176 

电信:133   153   177  180   181   189 

版本 1

整理后:130~139  145,147 15[012356789] 176,177,178 180~189

 

 

var regex = { mobile: /^0?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/  }

版本 2

/^(130|131|132|133|134|135|136|137|138|139|150|151|152|153|155|156|157|158|159|180|186|187|188|189)/d{8}$/

 

??: <http://blog.csdn.net/americanusa/article/details/5661712>

 

版本 3

提取信息中的中国手机号码:(86)*0*13d{9}  

 

??: <http://www.111cn.net/wy/96/4f65fbc26b950efe015cf30da65afc95.htm>

 

版本 4

提取信息中的中国电话号码(包括移动和固定电话):((d{3,4})|d{3,4}-|s)?d{7,14} 

 

??: <http://www.111cn.net/wy/96/4f65fbc26b950efe015cf30da65afc95.htm>

 

版本 5

/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/

 

??: <http://caibaojian.com/regexp-example.html>

 


2. 座机

中华人民共和国电话区号

 

??: <http://zh.wikipedia.org/wiki/%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD%E7%94%B5%E8%AF%9D%E5%8C%BA%E5%8F%B7

+86-10-123456

0086-10-123456
 

0517-86545623

 

0086-517-93872648   , 省略 0
 

+86-212680-8691
 

正确的写法是不要 86后面那个0, 写成  86 312 4295xxx,或者 86 21 xxxx xxxx  (上海),  86 10 xxxx xxxx (北京).  最好的写法是:

+86312 4295xxx, 或者 +86 21 xxxx xxxx  (上海), +86 10 xxxx xxxx (北京).

区号 有可能三位,也有可能四位, 参考:中华人民共和国电话区号

版本 1

固定电话号码:((d{3,4})|d{3,4}-|s)?d{8} 

 

??: <http://www.111cn.net/phper/php-cy/44431.htm>

 

版本 2

0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能

匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地(如010-12345678),一种是4位区号,7位本地(0376-2233445)

\(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8}这个表达式

匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔

 

??: <http://deerchao.net/tutorials/regex/regex.htm>

 

版本 3

/^\d{3}-\d{8}|\d{4}-\d{7}$/;//验证电话号码为7-8位数字并带有区号 

 

??: <http://896849548-qq-com.iteye.com/blog/1275240>

 

 

 

提取信息中的中国固定电话号码:((d{3,4})|d{3,4}-|s)?d{8} 

 

??: <http://www.111cn.net/wy/96/4f65fbc26b950efe015cf30da65afc95.htm>

 

 

版本 4

电话号码正则表达式(支持手机号码,3-4区号,7-8位直播号码,14位分机号)

((d{11})|^((d{7,8})|(d{4}|d{3})-(d{7,8})|(d{4}|d{3})-(d{7,8})-(d{4}|d{3}|d{2}|d{1})|(d{7,8})-(d{4}|d{3}|d{2}|d{1}))$)

匹配格式:

11位手机号码

3-4区号,7-8位直播号码,14位分机

如:123456789011234-12345678-1234

 

??: <http://www.111cn.net/wy/96/4f65fbc26b950efe015cf30da65afc95.htm>

 

 

版本 5

电话号码:7-8位数字: d{7,8}

分机号:一般都是3位数字: d{3,}

这样连接起来就是验证电话的正则表达式了:/^((0d{2,3})-)(d{7,8})(-(d{3,}))?$/

手机号码前面以1开头,第二位现在是3或者5,后面是9位数字,则:/^1[35]d{9}$/

看到一个比较强悍的验证:(^(d{2,4}[-_-—]?)?d{3,8}([-_-—]?d{3,8})?([-_-—]?d{1,7})?$)|(^0?1[35]d{9}$)

该表达式可以验证那些不小心把连接符“-”写出“-”的或者下划线“_”的等等。

 

??: <http://www.111cn.net/wy/96/4f65fbc26b950efe015cf30da65afc95.htm>

 

 

版本 6

var isfixedphone = function(str) {

  /**

  *

  * @desctition:规则->区号3-4位,号码7-8,可以有分机号,分机号为3-4为,格式如下:"0775-85333333-123"

  *

  */

  var pattern =  /^\d{3,4}-\d{7,8}(-\d{3,4})?$/;

  return pattern.test(str);

}

 

??: <http://www.open-open.com/code/view/1420818193000>

 

 


综合: 

RegEx

^([-_-—\s\(]?)([\(]?)((((0?)|((00)?))(((\s){0,2})|([-_-—\s]?)))|(([\)]?)[+]?))(86)?([\)]?)([-_-—\s]?)([\(]?)[0-9]{2,3}([\)]?)([-_-—\s]?)[0-9]{4}([-_-—\s]?)[0-9]{4}$

Example

0517-8499-6851
0517-84996851
64955331

010-84996851
(010)84996851
+86-10-8499-6851
13337971
344
861333
5716444
+86-1333
5971444
+861333
5971444

0086-133-3497-1414
(86)133379714
34


大陆--电话正则表达式

标签:正则表达式

原文地址:http://blog.csdn.net/sktechcom/article/details/45256473

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!