验证电子邮件地址Valider的类

本文介绍了一个简单的C#程序,用于验证用户的电子邮件地址是否符合基本的格式要求。程序通过检查@符号的位置、用户名的有效性等来判断电子邮件地址的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//验证电子邮件地址

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

}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值