正则表达式能判断出来运营商,和后续的添加维护功能。
看你对匹配的精度的要求高不高了,如果单纯判断开头三位数字的话:
[code="java"]//电信
String telcomPattern =
"(189|153|133)[0-9]{8}";
//测试
String[] phoneNums = {
"18902481111",
"a",
"189",
"13244445555"
};
for (String phoneNum : phoneNums) {
System.out.println(phoneNum.matches(telcomPattern));
}[/code]
[code="java"]
/**
* 返回类型
1 中国移动
2 中国联通
3 中国电信
0 无法识别
**/
function validate(phoneno){
var regex = /^(134|135|136|137|138|139|150|151|157|158|159)[0-9]{8}$/;
if(regex.test(phoneno)){
alert("中国移动!");
return 1;
}
regex = /^(130|131|132|155|156)[0-9]{8}$/;
if(regex.test(phoneno)){
alert("中国联通!");
return 2;
}
regex = /^(133|153|189)[0-9]{8}$/;
if(regex.test(phoneno)){
alert("中国电信!");
return 3;
}
return 0;
}
[/code]