国内手机号码的规则(来自百度百科):
前3位为网络识别号;第4-7位为地区编码;第8-11位为用户号码。
移动:
1340-1348、135、136、137、138、139、150、151、152、157、158、159、182、183、184、187、188、147、178
联通:
130、131、132、155、156、145、185、186、176、175
电信:
133、153、180、181、189、177、173、149
虚拟运营商:
170[1700/1701/1702(电信)、1703/1705/1706(移动)、1704/1707/1708/1709(联通)、171(联通)
请问用C#如何写出最准确的正则表达式?
解决方法
/// <summary>
/// 判断输入的字符串是否是一个合法的手机号
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsMobilePhone(string input)
{
Regex regex = new Regex("^1[34578]\\d{9}$");
return regex.IsMatch(input);
}
我们公司开始写的发现跟不上时代,就补加了第二位 5/7/8,感觉运营商变来变去,很难写太完整,都是出了问题再加