之前,脚本学堂,为大家介绍过一些用于验证手机号码的正则,比如:
php匹配电话号码的正则表达式(支持区位、直播号码、分机号码)
php常用正则表达式(日期 电话 中文 邮箱等)
不过,现在手机号码增加了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}$
座机:^0\d{2,3}(\-)?\d{7,8}$
下面介绍下在php与java中用到的二个正则表达式验证手机号码的例子。
1,php版
复制代码 代码示例:
$text = '15812345678';
$search ='/^(1(([35][0-9])|(47)|[8][0126789]))\d{8}$/';
if(preg_match($search,$text)) {
echo '手机完全符合';
}else {
echo '手机格式不符合';
}//edit by www.jbxue.com
?>
2,java版
复制代码 代码示例:
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("不符合!");
}
}
}
}
}