一、开发过程中,很多时候我们在保存一些用信息资料时,会用到电话号码是否合法的条件判断,下面运用正则表达式来匹配电话号码,检查其是否合法,代码如下
/// <summary>
/// 匹配3位或4位区号的电话号码,其中区号可以用小括号括起来,
/// 也可以不用,区号与本地号间可以用连字号或空格间隔,
/// 也可以没有间隔
/// \(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8}|\(0\d{3}\)[- ]?\d{7}|0\d{3}[- ]?\d{7}
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsPhone(string input)
{
//匹配3位或4位区号,其电话号码可能为7位,也可能为8位 删除行首行尾空白符:^s*|s*$
//要匹配的正则表达式的模式如下:
string pattern = "^\\(0\\d{2}\\)[- ]?\\d{8}$|^0\\d{2}[- ]?\\d{8}$|^\\(0\\d{3}\\)[- ]?\\d{7}$|^0\\d{3}[- ]?\\d{7}$|^0\\d{3}[- ]?\\d{8}$";
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
}
/// <summary>
/// 判断输入的字符串是否是一个合法的手机号
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsMobilePhone(string input)
{
//目前开放的手机号码段为:130-139,,150-159,180-189 匹配的正则表达式
Regex regex = new Regex("^13\\d{9}$|^15\\d{9}$|^18\\d{9}$");
return regex.IsMatch(input);
}