【www.bbyears.com--正则表达式】
电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号)
代码如下 ((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位直播号码,1-4位分机号
正则表达式--验证手机号码:13[0-9]{9}
实现手机号前带86或是+86的情况:^((+86)|(86))?(13)d{9}$
例
代码如下$mobilephone=trim($_POST["smMobilePhone"]);
//手机号码的正则验证
if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$mobilephone)){
//验证通过
}else{
//手机号码格式不对
}
上面的是我们以前的写法,下面介绍最新的手机号正则表达式
现在的手机号码增加了150,153,156,158,159,157,188,189
所以正则表达式如下: string s = @"^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])d{8}$";
万雅虎 的提示,添加180,147等,更加全面的表达式:
^(1(([35][0-9])|(47)|[8][0126789]))d{8}$
再次修改添加了183,并添加了座机的,如下:
代码如下手机:^(1(([35][0-9])|(47)|[8][01236789]))d{8}$
座机:^0d{2,3}(-)?d{7,8}$
asp.net做法
代码如下using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// string s = @"^(13[0-9]|15[0|3|6|8|9])d{8}$";
string s = @"^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])d{8}$";
while (true)
{
string input = Console.ReadLine();
if (Regex.IsMatch(input, s))
{
MessageBox.Show("完全符合!");
}
else
{
MessageBox.Show("不符合!");
}
}
}
}
}
一个完整实例
手机号的那个,各位大爷可以用第一个,也可以用第二个,您随意吧,我不知道手机号现在都有15几了,就都弄上了。。
代码如下
function CheckChinaMobileID(mobile){
if (mobile==""){
alert("请填写手机号码!");
return false;
}
if(isNaN(mobile)||(mobile.length!=11)){
alert("手机号码为11位数字!请正确填写!");
return false;
}
var reg =/^0{0,1}(13[4-9]|15[7-9]|15[0-2]|18[7-8])[0-9]{8}$/;
if(!reg.test(mobile))
{
alert("您的手机号码不是移动号码,请重新输入");
return false;
}
alert("大爷,这个真是移动的手机号");
return true;
}
function CheckIsMobile(mobile){
if (mobile==""){
alert("请填写手机号码!");
return false;
}
if(isNaN(mobile)||(mobile.length!=11)){
alert("手机号码为11位数字!请正确填写!");
return false;
}
var reg =/^0{0,1}(13[0-9]|15[0-9])[0-9]{8}$/;
if(!reg.test(mobile))
{
alert("您的手机号码不正确,请重新输入");
return false;
}
alert("大爷,这个真是手机号,是哪的我不知道");
return true;
}