使用正则表达式在控制器中进行验证

时间:2018-12-20 20:04:13

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

如果我是一个完整而完全的菜鸟,对不起,但是我得到了可能使用正则表达式在注册页面上验证用户输入的任务。我是100%的后端,所以我看不到前端。所以我同学告诉我的是,我应该在控制器中使用正则表达式,但是我只写API。是否可以在API中使用REGEX?我也尝试在模型中指定

之类的东西
public string email { get; set; }
    [Display(Name = "Email address")]
    [Required(ErrorMessage = "The email address is required")]
    [EmailAddress(ErrorMessage = "Invalid Email Address")]

但是当我更新数据库并检查数据库中的SQL时,它什么都没有说,当我发送带有userdata的帖子请求时,它只允许我输入任何内容作为电子邮件地址。抱歉,如果我没有清楚地描述一些东西,我希望任何人都可以帮助我。我们可以放下regex并进行完整的前端检查,但我很高兴知道将来如何进行此操作。 :)

1 个答案:

答案 0 :(得分:3)

注释必须在属性之前

[Display(Name = "Email address")]
[Required(ErrorMessage = "The email address is required")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string email { get; set; }

通过这种方式,您的验证必须有效

您还可以使用正则表达式

    [RegularExpression(@"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[A-Z0-9.-]+\.[A-Z]{2,}$", 
        ErrorMessage = "Characters are not allowed.")]

编辑:同样在您的操作方法中

[HttpPost]
public IActionResult Post(string email)
{
    if (ModelState.IsValid)
    {
        //return success result
    }

    return BadRequest(ModelState);
}