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

不是用js脚本
2024-11-20 03:31:01
推荐回答(4个)
回答(1):

“((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("网址正确");
}

}
}

===============================
楼下的,你有没有试过啊!
抛出异常,要占用多少资源啊!
何况根本就不行,这个我早想过了!

回答(2):

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;
}
在需要的地方 调用这个方法 传入参数
嗯,据我所知是这样

回答(3):

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;
}
在需要的地方 调用这个方法 传入参数

回答(4):

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()就可以了