//
验证电子邮件地址
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>
/// 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();
}
}
}
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();
}
}
}