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
(+86)138-0013-8000
我国使用的手机号码为11位,其中各段有不同的编码方向:
前3位———网络识别号;
第4-7位———地区编码;
第8-11位———用户号码
现有手机号段:
移动:139 138137 136 135134 147 150151 152 157158 159 178182 183 184187 188
联通:130 131 132155 156 185186 145 176
电信:133 153 177180 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://www.jb51.cc/article/p-nxxzbaos-cu.html>
|
版本 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 |
@H_301_275@ /^(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. 座机
中华人民共和国电话区号
+86-10-123456
0086-10-123456
0517-86545623
0086-517-93872648,省略 0
(+86-21)2680-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}-|s)?d{8}
|
|
版本 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位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔。
|
|
版本 3 |
/^\d{3}-\d{8}|\d{4}-\d{7}$/;//验证电话号码为7-8位数字并带有区号
출처: <http://896849548-qq-com.iteye.com/blog/1275240>
|
|
|
提取信息中的中国固定电话号码:((d{3,4}-|s)?d{8}
출처: <http://www.111cn.net/wy/96/4f65fbc26b950efe015cf30da65afc95.htm>
|
|
版本 4 |
电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((d{11})|^((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位直播号码,1-4位分机号 如:12345678901、1234-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 |
varisfixedphone = function(str) { /** * * @desctition:规则->区号3-4位,号码7-8位,可以有分机号,分机号为3-4为,格式如下:"0775-85333333-123" * */ varpattern = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/; returnpattern.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 010-84996851 0086-133-3497-1414 |
整理起来不容易
有错误的话麻烦告诉我 原文链接:https://www.f2er.com/regex/360472.html