【问题标题】:RegularExpression validation not working on model正则表达式验证不适用于模型
【发布时间】:2013-07-25 07:13:02
【问题描述】:

我有以下代码:

public class Register
{
[RegularExpression(@"^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$", ErrorMessage = "eMail is not in proper format")]
[Required(ErrorMessageResourceName="Name Required"), ErrorMessageResourceType = typeof(ErrorMessages))]
public string Email{ get; set; }
}

我尝试过的电子邮件:asd@asd.com 有效,但验证失败。

所需的工作正常,但正则表达式失败。即使我输入了有效的电子邮件地址,它仍然会说电子邮件格式不正确。

我在这里错过了什么?提前致谢!

编辑

这个正则表达式验证器正在使用 Resources.resx 处理我的其他 mvc 应用程序。所以我认为这里的问题是我如何在我的模型类上声明它。

【问题讨论】:

  • 提供一些示例输入。您的正则表达式将通过 test@test.com 但未通过 t.est@test.com。
  • 你的正则表达式将失败 "some.one@some.thing.travel"

标签: c# regex asp.net-mvc-3


【解决方案1】:
        Regex regx = new Regex(@"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|"
        + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)"
        + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$");

/* 公开声明并验证您的邮件文本框 */

【讨论】:

    【解决方案2】:

    解决了。我不小心在我的代码上放了错误的正则表达式:

    "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$
    

    代替:

     @"^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$
    

    现在我将专注于制作最好的电子邮件正则表达式。谢谢!

    【讨论】:

    猜你喜欢
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多