使用RegularExpression注释验证模型

本文关键字:模型 验证 注释 RegularExpression 使用 | 更新日期: 2023-09-27 18:28:22

我在我的web api项目中添加了一个过滤器来验证从客户端传递的所有模型。为了验证模型,我使用了数据注释。除了当我使用RegularExpression注释时,一切似乎都很好。

这是我的api中的过滤器:

    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        if (actionContext.ModelState.IsValid == false)
        {
            actionContext.Response = actionContext.Request.CreateErrorResponse(
                HttpStatusCode.BadRequest, actionContext.ModelState);
        }
    }

这就是没有正确验证的模型属性:

    [Required]
    [MinLength(8)]
    [StringLength(255)]
    [RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*'d)", ErrorMessage = "Password must contain at least one capital letter and one number")]
    public string Password { get; set; }

无论我在字符串中传递什么值,我都会不断收到错误。如有任何帮助,我们将不胜感激。

使用RegularExpression注释验证模型

试试这个:

^(?=.*[a-z])(?=.*[A-Z])(?=.*'d).*$

当密码格式正确时,探测表达式是否返回null