Я добавил фильтр в свой веб-проект 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; }
Независимо от того, какие значения я передаю в строке, я продолжаю получать ошибку. Любая помощь с этим будет принята с благодарностью.
Попробуй это:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).*$
Вероятно, ваше выражение возвращает null
когда пароль корректно сформирован.