[求]手机号码和固话号码正则表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[求]手机号码和固话号码正则表达式相关的知识,希望对你有一定的参考价值。
要求是,输入正确手机或固话都能通过验证
支持长途,手机号码前可加0。固话可带区号
现在是这样写的
手机部分:^0?1[358]\d9$
固话部分:^(0(10|2[1-3]|[3-9]\d2))?[1-9]\d6,7$
然后用或符号“|”连接起来
^(0?1[358]\d9)|((0(10|2[1-3]|[3-9]\d2))?[1-9]\d6,7)$
用错误的号码测试 123456789012
单独用手机部分测试,得到号码非法
单独用固话部分测试,得到号码非法
但是用连接起来的表达式测试,居然能通过
为什么 ???
解释此现象给100分
再求一能解决此问题的正则,再追加100分
使用连接起来的表达式,号码通过。原因:"|"连接符;由于此连接符优先级最低,所以它将连接后的表达式分为两个部分
^(0?1[358]\d9) 和 ((0(10|2[1-3]|[3-9]\d2))?[1-9]\d6,7)$
导致了连接后的表达表达意思错误,解决方法有两种:
^(0?1[358]\d9)$|^((0(10|2[1-3]|[3-9]\d2))?[1-9]\d6,7)$
或者
^((0?1[358]\d9)|((0(10|2[1-3]|[3-9]\d2))?[1-9]\d6,7))$
也就是在^和$中间加一对括号。
================
还有不明白的,可以发Hi消息。 参考技术A ^(0?1[358]\d9)|^((0(10|2[1-3]|[3-9]\d2))?[1-9]\d6,7)$
他是迭代匹配的。 参考技术B 8383463回答的有道理,学习了 参考技术C 这是什么来的,看不懂,帮你顶上去....
求固定电话JS正则表达式
格式这样
区号-电话号码
function isOFFICETELE_PHONE (e)
var r =new RegExp(/\d3-\d8|\d4-\d7/);
if(e.value != "" && !r.exec(e.value))
alert ("电话号码不正确,请输入形如 区号+电话号码 的数字,如0901-2100222或010-11111111!");
e.focus();
参考技术A 楼上的两位 答案好像都有点问题,
我来回一个吧
^0[1-9]2,3-[1-9]\d5,7$
1.铁道部专属电话 有 6位 号码
2.不支持香港澳门及其他国家地区电话格式
此是香港澳门的,需要自己的话可以自己补充上去
^0085[23]-[1-9]\d7$ 参考技术B ^0\d3\d?-\d7\d?
区号-3、4位
号码-7、8位
以上是关于[求]手机号码和固话号码正则表达式的主要内容,如果未能解决你的问题,请参考以下文章