常用正则表达式

   ///   <summary>
        
///  检验日期格式是否正确
        
///   </summary>
         #region  public string IsDateFormat(string strDate)
        
public   string  IsDateFormat( string  strDate)
        {
            strDate 
=  strDate.Trim(); 

            Regex r1 
=   new  Regex( @" ^(?<year>[1-9][0-9]{0,3})/(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})$ " );
            Regex r2 
=   new  Regex( @" ^(?<year>[1-9][0-9]{0,3})-(?<month>[0-9]{1,2})-(?<day>[0-9]{1,2})$ " );
            Regex r3 
=   new  Regex( @" ^(?<year>[1-9][0-9]{0,3})年(?<month>[0-9]{1,2})月(?<day>[0-9]{1,2})日$ " );
            Regex r4 
=   new  Regex( @" ^(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})/(?<year>[1-9][0-9]{0,3})$ " ); 


            
//  取得日期的年,月,日
             string  year, month, date; 


            
if (Regex.IsMatch(strDate, @" ^(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})/(?<year>[1-9][0-9]{3})$ " ))
            {
                year 
=  r4.Match(strDate).Result( " ${year} " );
                month 
=  r4.Match(strDate).Result( " ${month} " );
                date 
=  r4.Match(strDate).Result( " ${day} " );
            }
            
else   if  (Regex.IsMatch(strDate, @" ^(?<year>[1-9][0-9]{0,3})/(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})$ " ))
            {
                year 
=  r1.Match(strDate).Result( " ${year} " );
                month 
=  r1.Match(strDate).Result( " ${month} " );
                date 
=  r1.Match(strDate).Result( " ${day} " );
            }
            
else   if (Regex.IsMatch(strDate, @" ^(?<year>[1-9][0-9]{0,3})-(?<month>[0-9]{1,2})-(?<day>[0-9]{1,2})$ " ))
            {
                year 
=  r2.Match(strDate).Result( " ${year} " );
                month 
=  r2.Match(strDate).Result( " ${month} " );
                date 
=  r2.Match(strDate).Result( " ${day} " );
            }
            
else   if (Regex.IsMatch(strDate, @" ^(?<year>[1-9][0-9]{0,3})年(?<month>[0-9]{1,2})月(?<day>[0-9]{1,2})日$ " ))
            {
                year 
=  r3.Match(strDate).Result( " ${year} " );
                month 
=  r3.Match(strDate).Result( " ${month} " );
                date 
=  r3.Match(strDate).Result( " ${day} " );
            }            
            
else
            {
                
return   " error " ;
            } 


            
//  最后检查日期的正确性
             try
            {
                System.DateTime dt 
=   new  DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(date));
                
return  dt.ToString( " yyyy-MM-dd " );
            }
            
catch
            {
                
return   " error " ;
            }
        }
        
#endregion  


        
------------------------------------------------------------------------------------------  


        
///   <summary>
        
///  检验Email字符串格式是否正确
        
///   </summary>
         #region  public bool IsEmailFormat(string strEmail)
        
public   bool  IsEmailFormat( string  strEmail)
        {
            
return  Regex.IsMatch(strEmail,  @" ^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$ " );
        }
        
#endregion  


        
------------------------------------------------------------------------------------------  



        
///   <summary>
        
///  转换十五位身份证为十八位的函数。
        
///   </summary>
         #region  public string ConvertIDCard15to18(string strTemp)
        
public   string  ConvertIDCard15to18( string  strTemp)
        {
            
int [] arrInt  =   new   int []{ 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 };
            
string  arrCh = " 10X98765432 " ;
            
int  nTemp  =   0 ;
            
if (strTemp.Length == 15 )
            {
                strTemp 
=  strTemp.Substring( 0 , 6 +   " 19 "   +  strTemp.Substring( 6 ,strTemp.Length - 6 );
                
for ( int  i  =   0 ; i  <  strTemp.Length; i ++ )
                {
                    nTemp 
+=   int .Parse(strTemp.Substring(i,  1 ).ToString())  *  arrInt[i];
                }
                strTemp 
+=  arrCh[nTemp  %   11 ]; 
            }
            
char  dd = arrCh[nTemp  %   11 ]; 
            
return  strTemp;
        } 
        
#endregion
        
        
------------------------------------------------------------------------------------------  


        下在为判断ASCII码的函数组,仅支持中英文 


        
///   <summary>
        
///  是否为双字节字符。
        
///   </summary>
         public   static   bool  IsTwoBytesChar( char  chr)
        {
            
string  str  = chr.ToString();
            
//  使用中文支持编码
            Encoding ecode  =  Encoding.GetEncoding( " GB18030 " );
            
if  (ecode.GetByteCount(str)  ==   2 )
            {
                
return   true ;
            }
            
else
            {
                
return   false ;
            }
        } 


        
///   <summary>
        
///  得到字符的ASCII码
        
///   </summary>
         public   static   int  ASCII( char  chr)
        {
            Encoding ecode 
=  Encoding.GetEncoding( " GB18030 " );
            Byte[] codeBytes 
=  ecode.GetBytes(chr.ToString());
            
if  ( IsTwoBytesChar(chr) )
            {
                
//  双字节码为高位乘256,再加低位
                
//  该为无符号码,再减65536
                 return  ( int )codeBytes[ 0 *   256   +  ( int )codeBytes[ 1 -   65536 ;
            }
            
else
            {
                
return  ( int )codeBytes[ 0 ];
            }
        }

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值