欢 迎 光 临 数据载入中,请稍候......'s BLog
数据载入中,请稍候......
这就是我
数据载入中,请稍候......
用户登陆
数据载入中,请稍候......
最新公告
数据载入中,请稍候......
站点日历
数据载入中,请稍候......
最新日志
数据载入中,请稍候......
最新回复
数据载入中,请稍候......
最新留言
数据载入中,请稍候......
 日志搜索

友情链接
其他信息


·产生随机数和判断手机号码的函数      -|cloudy 发表于 2006-8-29 10:58:36
/**//// <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> 
        
/// 判断号码是联通,移动,电信中的哪个,在使用本方法前,请先验证号码的合法性 
        
/// 规则:前三位为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) ; 
        }
[阅读全文 | 回复(0) | 引用通告 | 编辑]

发表评论:
数据载入中,请稍候......