# 今天下午写两个函数，还是比较通用的~~~

/// <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() ;

forint 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) ;
}

posted @ 2004-12-28 16:26  kwklover  阅读(2042)  评论(4编辑  收藏