可以同时使用RegularExpression和StringLength属性吗?

时间:2019-05-24 19:29:35

标签: validation asp.net-core attributes

尝试验证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属性可以正常工作。

关于此的任何线索都很好:)

编辑:

<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>

0 个答案:

没有答案