找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 13109|回复: 1

命名空间判断email合法

[复制链接]
发表于 2009-11-29 02:35:42 | 显示全部楼层 |阅读模式 IP:江苏扬州
using System;
using System.Collections;
namespace DV
{
         /// <summary>
         /// Class1 的摘要说明。
         /// </summary>
         ///
         //定义一个Valider类
         class Valider
         {
                 private bool accept;                 //表示如果数据被验证为合法,则accept为true,表示接受用户输入的数据,反之,为false,表示不接受
                 private string vldemail;         //用来保存要验证的电子邮件字符串。
                 private int aadd;                         //用来保存@符号所在字符串的位置,方便取出@前面字符,判断是否不小于3个字符
                 public delegate void BeginValidData();//用于提示用户验证开始
                 public event BeginValidData OnBeginValid;//在开始验证用户的输入数据前应引发此事件,并且该事件应提示用户验证开始
                 public delegate void EndValidData();//用于提示用户验证结束,并给出验证结果,表明程序对用户的信息是接受还是拒绝
                 public event EndValidData OnEndValid;//在对用户的输入数据验证后引发此事件,并应表态是否接受用户所输入的数据

                 /*
                  * 为Vailder类,添加OnBeginValid和OnEndValid事件,在Vailder类里,添加两个方法,其中一个由OnBeginValid来触发,
                  * 另一个由OnEndValid来触发,一个在验证前,一个在验证后。OnBeginValid和OnEndValid应在proccess(string   email)中发生。
                 */

                 public void begin()                                                 //用户提示信息,BeginValidData事件与其关联
                 {
                         Console.WriteLine("开始验证... ...");
                 }

                 public void end()                                                 //用户提示信息,EndValidData事件与其关联
                 {
                         Console.WriteLine("验证结束");
                         if(accept)
                         {
                                 Console.WriteLine("您输入的电子邮件格式合法");
                         }
                         else
                         {
                                 Console.WriteLine("您的电子邮件不合法,系统不能接受");
                         }
                         Console.ReadLine();
                 }

                 public void proccess(string   email)                 //对参数email实施验证
                 {
                         /*
                                 作用是对参数email实施验证,首先把email参数值赋给成员变量vldemail。内部可调用,以下私有方法:
                                 A、         validAtSym   ---对电子邮件信息的@字符验证;
                                 B、         validUsername   ---对电子邮件信息的用户名验证;
                                 注意:proccess方法调用validAtSym和validUsername控制accept成员变量;
                         */
                         vldemail=email;
                         this.OnBeginValid+=new DV.Valider.BeginValidData(this.begin);
                         OnBeginValid();
                         this.validAtSym();
                         this.validUsername();
                         this.OnEndValid+=new DV.Valider.EndValidData(this.end );
                         OnEndValid();
                 }

                 private void validAtSym()//validAtSym   ---对电子邮件信息的@字符验证;
                         /*
                                 a.         存在@字符
                                 b.         只允许有一个@字符
                                 c.         @字符只允许放在中间某一位置上
                         */
                 {
                         //验证是否存在@字符
                         IEnumerator vEnu=vldemail.GetEnumerator();                         //定义枚举
                         int acount=0;                                                                                 //用来计算@符号的个数
                         int i=0;                                                                                         //帮助算出aadd的值的临时变量
                         while(vEnu.MoveNext())//循环
                         {
                                 i=i+1;
                                 if(Convert.ToChar(vEnu.Current)=='@')                         //强制类型转换,比较输入字符串中是否存在'@'字符
                                 {
                                         //如果存在所作操作
                                         accept=true;                                                                 //验证变量为真,即接受用户输入
                                         aadd=i;                                                                                 //确定@符号所在位置
//                                         Console.WriteLine("存在@!");                                 //给出提示
                                       
                                         //不允许存在两个@符号
                                         acount=acount+1;
                                         if(acount>1)
                                         {
                                                 accept=false;
//                                                 Console.WriteLine("输入多于1个@!");
                                         }
                                 }
                         }
                         //验证第一个字符是否为@
                         if(vldemail.StartsWith ("@"))
                         {
                                 accept=false;
                                 //                                 Console.WriteLine("第一个字符不允许为@!");
                         }
                         //验证最后一个字符是否为@
                         if(vldemail.EndsWith ("@"))
                         {
                                 accept=false;
                                 //                                 Console.WriteLine("最后一个字符不允许为@!");
                         }
                 }

                 private void validUsername()//B、         validUsername   ---对电子邮件信息的用户名验证;
               
                         /*
                                 a.         不允许小于三个字符
                                 b.         不允许出现逗号
                                 c.         数字不能在用户名的开头
                         */
               
                 {
                         //验证用户名是否小于三个字符
                         if(accept==true)
                         {
                                 string uservld=vldemail.Substring(0,aadd-1);//截取@前面用户名部分
                                 if(uservld.Length<=3)
                                 {
                                         accept=false;
                                         //                                 Console.WriteLine("用户名应该不小于3个字符!");
                                 }
                                 //验证用户名是否存在“,”
                                 IEnumerator uEnu=vldemail.GetEnumerator();                         //定义枚举
                                 while(uEnu.MoveNext())
                                 {
                                         if(Convert.ToChar(uEnu.Current )==','||Convert.ToChar(uEnu.Current )==',')
                                         {
                                                 accept=false;
                                                 //                                         Console.WriteLine("用户名不能包含逗号字符!");
                                         }
                                 }
                                 //验证用户名是否以数字开头
                                 if(uservld.StartsWith("0")||uservld.StartsWith("1")||uservld.StartsWith("2")||uservld.StartsWith("3")||uservld.StartsWith("4")||uservld.StartsWith("5")||uservld.StartsWith("6")||uservld.StartsWith("7")||uservld.StartsWith("8")||uservld.StartsWith("9"))
                                 {
                                         accept=false;
                                         //                                 Console.WriteLine("用户名不能以数字开头!");
                                 }
                         }
                 }
         }
         class Class1
         {
                 /// <summary>
                 /// 应用程序的主入口点。
                 /// </summary>
                 [STAThread]

                 static void Main(string[] args)
                 {
                         //
                         // TODO: 在此处添加代码以启动应用程序
                         //
                         Valider v=new Valider();
                         Console.Write("请输入需验证的电子邮件地址:");
                         v.proccess(Console.ReadLine());
                 }
         }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 19:16 , Processed in 0.500207 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表