请在web api方法中提供正则表达式来验证电子邮件ID,如下所示:
// GET: users/sample%40email.com
[Route("users/{emailAddress:regex()}")]
public IHttpActionResult GetUser(string emailAddress)
在这里,我需要正则表达式,它将验证电子邮件,例如示例%40email.com,并将用于:web api路由属性的regex()。
答案 0 :(得分:9)
您使用的是哪个版本的框架?如果这是框架4.5,则应用电子邮件属性
[EmailAddress(ErrorMessage = "Not a valid email")]
RegEx将如下所示
^[a-zA-Z0-9_.+-]+@[email]+\.[a-zA-Z0-9-.]+$
答案 1 :(得分:3)
您可以通过多种方式验证电子邮件地址。您可以使用正则表达式或MailAddress类。
<强>正则表达式强>
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
<强>用法强>
bool isEmail = Regex.IsMatch(emailAddress, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase);
使用MailAddress
public bool IsValid(string emailAddress)
{
try
{
MailAddress m = new MailAddress(emailaddress);
return true;
}
catch (FormatException)
{
return false;
}
}
答案 2 :(得分:3)
以下解决方案适合我。谢谢你的帮助。
// GET: users/sample%40email.com
[Route("users/{emailAddress:regex(\\[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})}")]
public IHttpActionResult GetUser(string emailAddress)