можно использовать атрибуты RegularExpression и StringLength одновременно? - PullRequest
0 голосов
/ 24 мая 2019

Попытка проверить поле пароля в ASP.Net Core.Я хотел бы разделить сообщения, если пароль не соответствует регулярному выражению и если он не соответствует определенной длине.

До сих пор я пробовал это на моей модели данных:

[Required(ErrorMessage = "Le champs est obligatoire")]
[StringLength(30, MinimumLength = 10, ErrorMessage = "Password must contain from 10 to 30 characters")]
[RegularExpression("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d.*)(?=.*\\W.*)[a-zA-Z0-9\\S]{10,30}$", ErrorMessage ="Password must contain at least 1 uppercase, 1 lowercase, 1 digit and 1 special character")]

Но кажется, что атрибут StringLength никогда не достигается.

Если я пытаюсь использовать другой пароль, например, например: P@ss1! Я получаю сообщение об ошибке из атрибута Regex, но не из атрибута StringLength.

Конечно, если я удаляю атрибут RegularExpression, атрибут StringLength работает просто отлично.

Любая подсказка по этому поводу была бы хороша:)

EDIT:

<form asp-controller="Account" asp-action="EnterNewPassword" method="post">
                        @Html.AntiForgeryToken()
                        <input type="hidden" asp-for="ReturnUrl" />

                        <input asp-for="Token" type="hidden" />
                        <input asp-for="Email" type="hidden" />

                        <div class="col-12">
                            <div class="form-group">
                                <label asp-for="Password">Nouveau mot de passe</label>
                                <div class="password">
                                    <input asp-for="Password" type="password" class="form-control" /><i class="icon-eye" data-js-showPassword=""></i>
                                    <span asp-validation-for="Password" class="validation-error"></span>
                                </div>
                            </div>
                        </div>
                        <div class="col-12">
                            <div class="form-group">
                                <label asp-for="ConfirmPassword">Confirmation du mot de passe</label>
                                <div class="password">
                                    <input asp-for="ConfirmPassword" type="password" class="form-control" /><i class="icon-eye" data-js-showPassword=""></i>
                                    <span asp-validation-for="ConfirmPassword" class="validation-error"></span>
                                </div>
                            </div>
                        </div>
                        <div class="col-12 text-center">
                            <button type="submit" class="btn">Mettre à jour</button>
                        </div>
                    </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...