手机号规则
来源:互联网 发布:笨办法学python 视频 编辑:程序博客网 时间:2024/04/25 04:02
/**//// <summary>
/// 产生由英文和数字组成的指定个数的随机数
/// </summary>
/// <param name="number">产生随机数的个数</param>
/// <returns>指定个数的随机英数字符串</returns>
public static string GetRandomCode(int number)
{
string[] arrList = new string[] {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G",
"H","I","J","K","L","M","N","O","P","Q","R","S","T","U","W","X","Y","Z"} ;
StringBuilder sb = new StringBuilder("") ;
Random random = new Random() ;
for( int i = 0 ; i < number ; i++ )
{
sb.Append(arrList[(int)random.Next(0,arrList.Length)]) ;
}
return sb.ToString() ;
}
/**//// <summary>
/// 判断号码是联通,移动,电信中的哪个,在使用本方法前,请先验证号码的合法性
/// 规则:前三位为130-133 联通 ;前三位为135-139或前四位为1340-1348 移动; 其它的应该为电信
/// </summary>
/// <param name="mobile">要判断的号码</param>
/// <returns>返回相应类型:1代表联通;2代表移动;3代表电信</returns>
public static int GetMobileType(string mobile)
{
string[] chinaUnicom = new string[] {"130","131","132","133"} ;
string[] chinaMobile1 = new string[] {"135","136","137","138","139"} ;
string[] chinaMobile2 = new string[] {"1340","1341","1342","1343","1344","1345","1346","1347","1348"} ;
bool bolChinaUnicom = (Array.IndexOf(chinaUnicom,mobile.Substring(0,3)) >= 0) ;
bool bolChinaMobile1 = (Array.IndexOf(chinaMobile1,mobile.Substring(0,3)) >=0) ;
bool bolChinaMobile2 = (Array.IndexOf(chinaMobile2,mobile.Substring(0,4)) >=0) ;
if (bolChinaUnicom)
return 1 ;//联通
if ( bolChinaMobile1 || bolChinaMobile2 )
return 2 ; //移动
return 3 ; //其他为电信
}
注:有朋友建议,第二方法用正则表达式实现更好,确实不错,下面把第二方法的新实现贴上:
/// 产生由英文和数字组成的指定个数的随机数
/// </summary>
/// <param name="number">产生随机数的个数</param>
/// <returns>指定个数的随机英数字符串</returns>
public static string GetRandomCode(int number)
{
string[] arrList = new string[] {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G",
"H","I","J","K","L","M","N","O","P","Q","R","S","T","U","W","X","Y","Z"} ;
StringBuilder sb = new StringBuilder("") ;
Random random = new Random() ;
for( int i = 0 ; i < number ; i++ )
{
sb.Append(arrList[(int)random.Next(0,arrList.Length)]) ;
}
return sb.ToString() ;
}
/**//// <summary>
/// 判断号码是联通,移动,电信中的哪个,在使用本方法前,请先验证号码的合法性
/// 规则:前三位为130-133 联通 ;前三位为135-139或前四位为1340-1348 移动; 其它的应该为电信
/// </summary>
/// <param name="mobile">要判断的号码</param>
/// <returns>返回相应类型:1代表联通;2代表移动;3代表电信</returns>
public static int GetMobileType(string mobile)
{
string[] chinaUnicom = new string[] {"130","131","132","133"} ;
string[] chinaMobile1 = new string[] {"135","136","137","138","139"} ;
string[] chinaMobile2 = new string[] {"1340","1341","1342","1343","1344","1345","1346","1347","1348"} ;
bool bolChinaUnicom = (Array.IndexOf(chinaUnicom,mobile.Substring(0,3)) >= 0) ;
bool bolChinaMobile1 = (Array.IndexOf(chinaMobile1,mobile.Substring(0,3)) >=0) ;
bool bolChinaMobile2 = (Array.IndexOf(chinaMobile2,mobile.Substring(0,4)) >=0) ;
if (bolChinaUnicom)
return 1 ;//联通
if ( bolChinaMobile1 || bolChinaMobile2 )
return 2 ; //移动
return 3 ; //其他为电信
}
注:有朋友建议,第二方法用正则表达式实现更好,确实不错,下面把第二方法的新实现贴上:
/**//// <summary>
/// 判断号码是联通,移动,电信中的哪个,在使用本方法前,请先验证号码的合法性
/// 规则:前三位为130-133 联通 ;前三位为135-139或前四位为1340-1348 移动; 其它的应该为电信
/// </summary>
/// <param name="mobile">要判断的号码</param>
/// <returns>返回相应类型:1代表联通;2代表移动;3代表电信</returns>
public static int GetMobileType(string mobile)
{
if (IsChinaUnicomNumber(mobile))
return 1 ;
if (IsChinaMobileNumber(mobile))
return 2 ;
return 3 ;
}
//是否是联通的号码 测试通过
private static bool IsChinaUnicomNumber(string mobile)
{
string sPattern = "^(130|131|132|133)[0-9]{8}";
bool isChinaUnicom = Regex.IsMatch(mobile,sPattern) ;
return isChinaUnicom ;
}
//是否是移动的号码 测试通过
private static bool IsChinaMobileNumber(string mobile)
{
string sPattern = "^(135|136|137|138|139|1340|1341|1342|1343|1344|1345|1346|1347|1348)[1-9]{7,8}" ;
return Regex.IsMatch(mobile,sPattern) ;
}
/// 判断号码是联通,移动,电信中的哪个,在使用本方法前,请先验证号码的合法性
/// 规则:前三位为130-133 联通 ;前三位为135-139或前四位为1340-1348 移动; 其它的应该为电信
/// </summary>
/// <param name="mobile">要判断的号码</param>
/// <returns>返回相应类型:1代表联通;2代表移动;3代表电信</returns>
public static int GetMobileType(string mobile)
{
if (IsChinaUnicomNumber(mobile))
return 1 ;
if (IsChinaMobileNumber(mobile))
return 2 ;
return 3 ;
}
//是否是联通的号码 测试通过
private static bool IsChinaUnicomNumber(string mobile)
{
string sPattern = "^(130|131|132|133)[0-9]{8}";
bool isChinaUnicom = Regex.IsMatch(mobile,sPattern) ;
return isChinaUnicom ;
}
//是否是移动的号码 测试通过
private static bool IsChinaMobileNumber(string mobile)
{
string sPattern = "^(135|136|137|138|139|1340|1341|1342|1343|1344|1345|1346|1347|1348)[1-9]{7,8}" ;
return Regex.IsMatch(mobile,sPattern) ;
}
- 手机号规则
- 手机号段分配规则
- 手机号座机号身份证号的规则
- 手机号
- 手机号
- 注册时验证用户名(可以是普通用户名、手机号和邮箱)的合法规则(easyui)
- EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证
- 手机号段
- 垃圾手机号
- 手机号 正则
- 最新手机号
- js 手机号
- 验证手机号
- 验证手机号
- js 手机号
- 身份证号&手机号
- 正则 手机号
- 手机号验证
- Chapter 8 File and Registry(文件和注册表)
- C#版五子棋
- 北京第二次本地化与翻译行业交流会圆满结束
- asp.net MD5的用法
- 充分利用ASP.NET的三种缓存提高站点性能
- 手机号规则
- C#上传文件的一个实现
- 都是缓存惹得祸
- ASP.NET缓存:方法和最佳实践
- 在ASP.NET下实现数字和字符相混合的验证码
- 在C#中应用哈希表(Hashtable)
- 使用自定义实体类和集合代替DataSet
- dom4j 生成xml
- 读Ruby CookBook译CP1