正则 手机号段

wjcking 2012-01-11 01:59:30
联通号段:130、131、132、145、155、156、185、186
移动号段:134、135、136、137、138、139、147、150、151、152、157、158、159、182、187、188
电信号段:133、153、189、180

Javascript 写一个简单的正则表达式,判断是哪个号段的函数 ,谢谢老师,一定要测试通过哦~~~
...全文
376 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
q2104574 2012-01-14
  • 打赏
  • 举报
回复
我也写个试试,我也是新手
(13[0-2]|145|1[5][5-6]|1[8][5-6])\d{8}
(13[4-9]|147|15[0125789]|18[278])\d{8}
1([33]|[53]|[89]|[80])\d{9}


你试下哦,楼主,这个比较新手的写法··
suixin82 2012-01-13
  • 打赏
  • 举报
回复
//验证手机号码
//说明:支持最新的电信,移动,联通号段
function validatePhone(e) {
var phone = e.replace(/(^\s*)|(\s*$)/g, "");
var regm = /^0{0,1}(13[0-9]?|15[0-3]?|15[5-9]?|145|147|18[0-9])[0-9]{8}$/;
if (e.length == 11) {
if (!e.match(regm)) {
return "手机号码不正确。请重新输入!";
}
else {
return true;
}
}
else if (e.length > 0) {
return "手机号码为11位数字,请重新输入!";
}
else {
return "手机号码不能为空!";
}
};
  • 打赏
  • 举报
回复

//手机号码验证
$("#Txt_phone").change(function(){
var val=$("#Txt_phone").val();
var patten;

if(($("#Txt_phone").val().length==11)&(Number(val.substring(0,1))==1))
{
//验证手机号码正则包含中国电信、联通、移动现有号段
patten=new RegExp(/^1(3[0-9])|(4[57])|(5[012356789])|(8[0236789])\d{8}$/i);
}
else
{
alert("非法手机号");
}

if(/^1(33)|(53)|(8[09])\d{8}$/i.exec(val))
{
alert("电信号段");
}
if(/^1(3[4-9])|(47)|(5[012579])|(8[278])\d{8}$/i.exec(val))
{
alert("移动号段");
}
if(/^1(3[0-2])|(45)|(5[56])|(8[56)\d{8}$/i.exec(val))
{
alert("联通号段");
}
});

aihua17 2012-01-11
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<div id="menu">
<input name="" type="text" id="input1" />
<input type="button" name="Submit" value="检查" onclick="checkNum()"/>
</div>
<script type="text/javascript">
function checkNum(){
var num = document.getElementById("input1").value;
var reg1 = /^1(3[012]|45|5[56]|8[56])\d{8}$/;
//var reg1 = /^1(3[4-9]|5[012789]|8[78]|47)\d{8}$/
var reg2 = /^1(3[4-9]|47|5[012789]|8[287])\d{8}$/;
var reg3 = /^1(33|53|89|80)\d{8}$/;
if(reg1.test(num)){alert("联通号段")}
if(reg2.test(num)){alert("移动号段")}
if(reg3.test(num)){alert("电信号段")}

}
</script>
<p>联通号段:130、131、132、145、155、156、185、186<br />
移动号段:134、135、136、137、138、139、147、150、151、152、157、158、159、182、187、188 <br />
电信号段:133、153、189、180<br />
</p>
</body>
</html>
BUG胡汉三 2012-01-11
  • 打赏
  • 举报
回复

var lian = /^1(3[012]|45|5[56]|8[56])\d{8}$/; //联通
var yidong = /^1(3[4-9]|47|5[012789]|8[278])\d{8}$/ ; //移动
var dian = /^1(33|53|8[09])\d{8}$/; //电信
function fTest(sVal){
if(lian.test(sVal)){
alert(sVal+" 该号码为联通号段!");
}else if(yidong.test(sVal)){
alert(sVal+" 该号码为移动号段!");
}else if(dian.test(sVal)){
alert(sVal+" 该号码为电信号段!");
}else{
alert("无效号码!");
}
}
aihua17 2012-01-11
  • 打赏
  • 举报
回复
联通:/^1(3[012]|45|5[56]|8[56]\d{8}$/
移动:/^1(3[4-9]|47|5[012789]|8[287])\d{8}$/
电信:/^1(33|53|89|80)\d{8}$/
wjcking 2012-01-11
  • 打赏
  • 举报
回复
能不能,完整点? 谢谢,能测试通过的
小歌 2012-01-11
  • 打赏
  • 举报
回复
顶一个,等高手答案。。
三石-gary 2012-01-11
  • 打赏
  • 举报
回复
匹配移动手机号:^1(3[4-9]|5[012789]|8[78]|47)\d{8}$
匹配电信手机号:^1(8[09]|33|53)\d{8}$
匹配联通手机号:^1(3[0-2]|5[56]|8[56]|45)\d{8}$
三石-gary 2012-01-11
  • 打赏
  • 举报
回复
匹配移动手机号:^1(3[4-9]|5[012789]|8[78])\d{8}$
匹配电信手机号:^18[09]\d{8}$
匹配联通手机号:^1(3[0-2]|5[56]|8[56])\d{8}$

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧