C#如何判断字符串为邮箱

不是用js脚本... 不是用js脚本 展开
 我来答
顺畅又灵秀丶君子兰1175
2011-01-13 · TA获得超过1247个赞
知道小有建树答主
回答量:889
采纳率:100%
帮助的人:634万
展开全部
“((http|https|ftp):(\/\/|\\\\)((\w)+[.])
(net|com|cn|org|cc|tv|[0-9])(((\/[\~]*|\\[\~]*)(\w)+)|[.]
(\w)+)*(((([?](\w)+)[=]*))*((\w)+)([\&](\w)+[\=](\w)
+)*)*)”(不含外侧中文引号),
解析:要判断字符串是否为网址,需要下面几个条件。
条件一:常见的网址是以、https://或ftp://开头,而这
部分转换为正则表达式就为(http|https|ftp):(\/\/|\\\\)。
条件二:在后面必须要紧跟一个单词字符(一般为www),
然后就是字符“.”(这样的组合必须出现一次或多次),最后就是域
名(net、com、cn或数字的IP地址等),这部分转换为正则表达式就
为((\w)+[.])(net|com|cn|org|cc|tv|[0-9])。
条件三:在完整的链接后,可能会出现下一级或更多级的目录,
甚至是“~”符号,此条件变为正则表达式为(((\/[\~]*|\\[\~]*)
(\w)+)|[.](\w)+)*。
条件四: 链接的末尾还可以带有参数,如前面提到的230.
aspx&e=9690或是?Page=2&action=display等,换为正则表达式为(((([?]
(\w)+)[=]*))*((\w)+)([\&](\w)+[\=](\w)+)*)*。
===============================
代码如下 :

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Text.RegularExpressions;

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string sRegex = @"(((([?](\w)+)[=]*))*((\w)+)([\&](\w)+[\=](\w)+)*)*";
Regex myrx = new Regex(sRegex);
Match match = myrx.Match("");
if (!match.Success)
{
Response.Write("网址输入有错");
}
else
{
Response.Write("网址正确");
}

}
}

===============================
楼下的,你有没有试过啊!
抛出异常,要占用多少资源啊!
何况根本就不行,这个我早想过了!
勇者的光芒
推荐于2017-11-28 · TA获得超过3258个赞
知道小有建树答主
回答量:432
采纳率:0%
帮助的人:124万
展开全部
public static string IsEmail(string str)
{
string res = string.Empty;
string expression = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
if (Regex.IsMatch(str, expression, RegexOptions.Compiled))
{
res = "输入的电子邮件格式不正确!如(yongjie@4ugood.net)。";
}
return res;
}
在需要的地方 调用这个方法 传入参数
嗯,据我所知是这样
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q1736452
2011-01-12 · 超过42用户采纳过TA的回答
知道答主
回答量:182
采纳率:0%
帮助的人:114万
展开全部
public static string IsEmail(string str)
{
string res = string.Empty;
string expression = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
if (Regex.IsMatch(str, expression, RegexOptions.Compiled))
{
res = "输入的电子邮件格式不正确!如(yongjie@4ugood.net)。";
}
return res;
}
在需要的地方 调用这个方法 传入参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贼寇在何方
2011-01-12 · TA获得超过770个赞
知道小有建树答主
回答量:759
采纳率:0%
帮助的人:713万
展开全部
using System.Text;
using System.Text.RegularExpressions;

static public class Extension{
static public bool IsEmail( this string s )
{
return Regex.IsMatch( s, @"\w+@\w+\.\w+" );
}
}

用到了扩展方法,调用str.IsEmail()就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式