A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邓超军 中级黑马   /  2013-8-15 12:39  /  1526 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在论坛上看到一个帖子http://bbs.itheima.com/forum.php?mod=viewthread&tid=57905 里面使用正则表达式进行判断,代码如下:
  1. using System;
  2. using System.Text.RegularExpressions;
  3. namespace test7
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             //判断一个字符串是否是合法的Email地址。一个Email地址的特征就是以一个字符序列开始,

  10.             while (true)
  11.             {

  12.                 Console.WriteLine("请输入一个邮箱地址");
  13.                 //声明一个变量接收用户输入的邮箱地址
  14.                 string email = Console.ReadLine();
  15.                 //声明一个pattern接收正则表达式
  16.                 string pattern = @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";

  17.                 //声明一个bool变量的值存储判断的值,true为合法,false为输入错误
  18.                 bool pd = Regex.IsMatch(email, pattern);
  19.                 if (pd)
  20.                 {
  21.                     //输入正确,直接break跳出循环
  22.                     Console.WriteLine("输入合法");
  23.                     break;
  24.                 }
  25.                 else
  26.                 {
  27.                     //输入错误,提示继续输入
  28.                     Console.WriteLine("输入错误,请从新输入");
  29.                 }

  30.             }
  31.             Console.ReadKey();
  32.         }
  33.     }
  34. }
复制代码
但是不够完美,比如输入@1234@123.com1233@123.com. ,依然判断正确。因为我对正则表达式不懂,所以请懂的人给完善一下,谢谢!

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

5 个回复

倒序浏览
我没有用正则表达式写的判断方法,很笨啊,给大家献丑了!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace test8
  6. {
  7.     class Program
  8.     {

  9.         static void Main(string[] args)
  10.         {
  11.             Console.WriteLine("请输入一个Email地址:");
  12.             string strIn = Console.ReadLine();
  13.             Console.WriteLine(IsEmail(strIn).ToString());
  14.             Console.ReadLine();
  15.         }

  16.         static bool IsEmail(string strText)
  17.         {
  18.             //一个Email地址中只有一个@且不能排在第一位
  19.             if (strText.IndexOf("@")>0 && strText.IndexOf("@") == strText.LastIndexOf("@"))
  20.             {
  21.                 //@后面不能紧挨着“.”。
  22.                 if (strText.IndexOf(".",strText.IndexOf("@")) > strText.IndexOf("@")+1)
  23.                 {
  24.                     //“.”不能位于最末位
  25.                     if (strText.LastIndexOf(".") < strText.Length - 1)
  26.                     {
  27.                         return true;
  28.                     }
  29.                     else
  30.                     {
  31.                         return false;
  32.                     }
  33.                 }
  34.                 else
  35.                 {
  36.                     return false;
  37.                 }
  38.             }
  39.             else
  40.             {
  41.                 return false;
  42.             }
  43.         }
  44.     }
  45. }
复制代码
回复 使用道具 举报
路过 学习一下
回复 使用道具 举报
  1. 1. bool istrue = Regex.IsMatch(email, @"^\s*([A-Za-z0-9_-]+(\.\w+)*@([\w-]+\.)+\w{2,10})\s*$");

  2. if (!istrue)

  3. {

  4. this.lab_email.InnerHtml = "&nbsp;邮箱格式错误 请修改";

  5. return false;

  6. }

  7. 2.string email = this.eamilTextbox.Text.Trim();
  8.   string pattern = @"[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})";
  9.    if (!Regex.IsMatch(email, pattern))
  10.    {
  11.       this.eamilTextbox.Focus();
  12.       return false;
  13.    }


  14. JS:

  15. var re = /^\s*([A-Za-z0-9_-]+(\.\w+)*@([\w-]+\.)+\w{2,10})\s*$/;      //邮箱格式

  16. if (!re.test(Email))

  17. {

  18.   document.getElementById('lab_email').innerHTML='&nbsp;邮件格式错误';              

  19. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报

谢谢了!学习了。
回复 使用道具 举报
下面是我的代码
Console.WriteLine("请输入要一个邮箱地址:");
string str = Console.ReadLine();
bool flag = Regex.IsMatch(str, @"^\w+@\w+.[a-zA-Z]{2,3}$");
Console.WriteLine(flag);
Console.ReadKey()

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马