黑马程序员技术交流社区
标题:
有关判断Email地址是否正确的问题
[打印本页]
作者:
邓超军
时间:
2013-8-15 12:39
标题:
有关判断Email地址是否正确的问题
在论坛上看到一个帖子
http://bbs.itheima.com/forum.php?mod=viewthread&tid=57905
里面使用正则表达式进行判断,代码如下:
using System;
using System.Text.RegularExpressions;
namespace test7
{
class Program
{
static void Main(string[] args)
{
//判断一个字符串是否是合法的Email地址。一个Email地址的特征就是以一个字符序列开始,
while (true)
{
Console.WriteLine("请输入一个邮箱地址");
//声明一个变量接收用户输入的邮箱地址
string email = Console.ReadLine();
//声明一个pattern接收正则表达式
string pattern = @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
//声明一个bool变量的值存储判断的值,true为合法,false为输入错误
bool pd = Regex.IsMatch(email, pattern);
if (pd)
{
//输入正确,直接break跳出循环
Console.WriteLine("输入合法");
break;
}
else
{
//输入错误,提示继续输入
Console.WriteLine("输入错误,请从新输入");
}
}
Console.ReadKey();
}
}
}
复制代码
但是不够完美,比如输入@
1234@123.com
和
1233@123.com
. ,依然判断正确。因为我对正则表达式不懂,所以请懂的人给完善一下,谢谢!
作者:
邓超军
时间:
2013-8-15 12:42
我没有用正则表达式写的判断方法,很笨啊,给大家献丑了!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test8
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个Email地址:");
string strIn = Console.ReadLine();
Console.WriteLine(IsEmail(strIn).ToString());
Console.ReadLine();
}
static bool IsEmail(string strText)
{
//一个Email地址中只有一个@且不能排在第一位
if (strText.IndexOf("@")>0 && strText.IndexOf("@") == strText.LastIndexOf("@"))
{
//@后面不能紧挨着“.”。
if (strText.IndexOf(".",strText.IndexOf("@")) > strText.IndexOf("@")+1)
{
//“.”不能位于最末位
if (strText.LastIndexOf(".") < strText.Length - 1)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
}
}
复制代码
作者:
胡盼盼
时间:
2013-8-15 14:27
路过 学习一下
作者:
于驭龙
时间:
2013-8-15 17:59
1. bool istrue = Regex.IsMatch(email, @"^\s*([A-Za-z0-9_-]+(\.\w+)*@([\w-]+\.)+\w{2,10})\s*$");
if (!istrue)
{
this.lab_email.InnerHtml = " 邮箱格式错误 请修改";
return false;
}
2.string email = this.eamilTextbox.Text.Trim();
string pattern = @"[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})";
if (!Regex.IsMatch(email, pattern))
{
this.eamilTextbox.Focus();
return false;
}
JS:
var re = /^\s*([A-Za-z0-9_-]+(\.\w+)*@([\w-]+\.)+\w{2,10})\s*$/; //邮箱格式
if (!re.test(Email))
{
document.getElementById('lab_email').innerHTML=' 邮件格式错误';
}
复制代码
作者:
邓超军
时间:
2013-8-16 00:08
于驭龙 发表于 2013-8-15 17:59
谢谢了!学习了。
作者:
小天
时间:
2013-8-16 16:18
下面是我的代码
Console.WriteLine("请输入要一个邮箱地址:");
string str = Console.ReadLine();
bool flag = Regex.IsMatch(str, @"^\w+@\w+.[a-zA-Z]{2,3}$");
Console.WriteLine(flag);
Console.ReadKey()
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2