验证电子邮件地址Valider的类

// 验证电子邮件地址

using  System;

namespace  Valider
{
    
///   <summary>
    
///  Valider 的摘要说明。
    
///   </summary>
    
    
// 定义开始验证事件委托
     public   delegate   void  VeginValidData();
    
// 定义结束验证时间委托
     public   delegate   void  EndValidData();

    
public   class  Valider
    {
        
// 电子邮件是否合法,合法为true,不合法为false
         private   bool  accept;
        
// 要验证的电子邮件地址
         private   string  vldemail;
        
        
// 开始验证事件
         public   event  VeginValidData onBeginValid;
        
// 结束验证事件
         public   event  EndValidData onEndValid;
        
        
// 电子邮件地址是否合法
         public   bool  Accept
        {
            
get
            {
                
return   this .accept;
            }
        }
        
///   <summary>
        
///  要验证的电子邮件地址
        
///   </summary>
         public   string  Vldemail
        {
            
get
            {
                
return   this .vldemail;
            }

            
set
            {
                
this .vldemail  =  value;
            }
        }

        
///   <summary>
        
///  构造函数
        
///   </summary>
         public  Valider()
        {
            
this .onBeginValid  +=   new  VeginValidData(Valider_onBeginValid);
            
this .onEndValid  +=   new  EndValidData(Valider_onEndValid);
            
this .accept  =   false ;
            
this .vldemail  =   "" ;
        }
        
        
///   <summary>
        
///  公共验证Email方法
        
///   </summary>
         public   void  proccess()
        {
            
// 调用开始验证事件
             this .onBeginValid();
            
// 验证@字符
             this .validAtSym();
            
if  ( accept )
            {
                
// 验证用户名
                 this .validUserName();
            }
            
// 调用结束验证事件
             this .onEndValid();
        }

        
///   <summary>
        
///  电子邮件信息的@字符验证
        
///   </summary>
         private   void  validAtSym()
        {
            
// 从前取@所在的位置
             int  intBeginAtSymIndex  =   this .vldemail.IndexOf( " @ " );    
            
// 从后取@所在的位置
             int  intEndAtSymIndex  =   this .vldemail.LastIndexOf( " @ " );
            
// 是否有@
             if  ( intBeginAtSymIndex  ==   - 1  )
            {
                
this .accept  =   false ;
                
return ;
            }
            
// 是否有两个@
             if  ( intBeginAtSymIndex  !=  intEndAtSymIndex )
            {
                
this .accept  =   false ;
                
return ;
            }
            
// @是否在中间
             if  ( intBeginAtSymIndex  ==   0   ||  intBeginAtSymIndex  ==  ( this .vldemail.Length - 1 ) )
            {
                
this .accept  =   false ;
                
return ;
            }
            
this .accept  =   true ;
        }

        
        
///   <summary>
        
///  对电子邮件信息的用户名验证
        
///   </summary>
         private   void  validUserName()
        {
            
// 取逗号所在的位置
             int  intCommaIndex  =   this .vldemail.IndexOf( " , " );
            
// 是否有逗号
             if  ( intCommaIndex  >   - 1  )
            {
                
this .accept  =   false ;
                
return ;
            }

            
// 取@所在的位置
             int  intAtSymIndex  =   this .vldemail.IndexOf( " @ " );    
            
// 取用户名
             string  strUserName  =   this .vldemail.Substring( 0 , this .vldemail.Length  -  intAtSymIndex - 1 );
            strUserName
= this .vldemail.Substring( 0 ,intAtSymIndex);
            
// 用户名是否有3位
             if  ( strUserName.Length  <   3  )
            {
                
this .accept  =   false ;
                
return ;
            }
            
            
// 取第一个字符
             string  strFirst  =  strUserName.Substring( 0 , 1 );
            
// 第一个字符是否为数字
             try
            {
                
int  intFirst  =  Convert.ToInt32(strFirst);
                
this .accept  =   false ;
                
return ;
            }
            
catch (Exception)
            {
                
this .accept  =   true ;
            }
            
this .accept  =   true ;
        }

        
// 结束验证
         private   void  Valider_onEndValid()
        {
            Console.WriteLine(
" 验证结束! " );
        }
        
        
// 开始验证
         private   void  Valider_onBeginValid()
        {
            Console.WriteLine(
" 开始验证! " );
        }
    }
}

 下面是一个测试类

 

using  System;

namespace  Valider
{
    
///   <summary>
    
///  Class1 的摘要说明。
    
///   </summary>
     class  Email
    {
        
///   <summary>
        
///  应用程序的主入口点。
        
///   </summary>
        [STAThread]
        
static   void  Main( string [] args)
        {
            Console.WriteLine(
" 请输入您的电子邮件: " );
            
// 实例化Valider
            Valider valider  =   new  Valider();
            
// 输入电子邮件地址
            valider.Vldemail  =  Console.ReadLine();
            
// 验证电子邮件
            valider.proccess();
            
// 判断是否合法
             if  ( valider.Accept )
            {
                Console.WriteLine(
" 您的电子邮件合法,系统可以接受! " );
            }
            
else
            {
                Console.WriteLine(
" 您的电子邮件不合法,系统不可以接受! " );
            }
            Console.ReadLine();
        
        }
    }

}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值