Почему regularexpressionvalidator игнорируется? - PullRequest
0 голосов
/ 24 октября 2018

Я ввел регулярное выражение, используя regularexpressionvalidator, но он не работает.

Это похоже на игнорирование валидатора.Зачем ?

  <div class="form-group">
                            <label class="control-label">
                                New Password
                                 <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtnewPassword"
                                     ErrorMessage="*" Display="Dynamic" ForeColor="red" ValidationGroup="acc"></asp:RequiredFieldValidator>
                                <asp:RegularExpressionValidator ID="regexValNewPassword" runat="server" Display="Dynamic" ForeColor="red" ValidationGroup="acc"
                                    ControlToValidate="txtnewPassword"
                                    EnableClientScript="False"
                                    ErrorMessage="***"
                                    ValidationExpression="^[1-9]+[0-9]*$" Visible="True">
                                    *
                                </asp:RegularExpressionValidator>

                            </label>
                            <asp:TextBox runat="server" ID="txtnewPassword" TextMode="Password" CssClass="form-control passwords"></asp:TextBox>

                        </div>

Обновление:

См. Я хочу, чтобы мое регулярное выражение выдавало ошибку, когда я только вводил строку цифр, например, 123455. Он должен принимать только строку со смешанными символами, например, 12ac3b12 или aac2211.@ 11

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Ваше регулярное выражение ^[1-9]+[0-9]*$ соответствует только цифрам и должно начинаться с 1-9.

Чтобы проверить, есть ли хотя бы символ и цифра, вы можете использовать положительный прогноз.

^(?=.*[A-Za-z@])(?=.*\d)[@a-zA-Z\d]+$

Regex demo

Объяснение

  • ^ Начало строки
  • (?=.*[A-Za-z@]) Позитивный взгляд на утверждение 1 символа из класса символов
  • (?=.*\d) Позитивный взгляд на утверждение 1 цифры
  • [@a-zA-Z\d]+ Соответствие 1+ разразрешено в классе персонажа.Вы можете добавить к классу символов то, что вы хотите сопоставить.
  • $ Конец строки

Из-за 2 положительных просмотров минимальная длина составляет 2 символа.Если вы хотите соответствовать минимальной длине, как например 8, вы можете добавить квантификатор как {8} в класс символов вместо +.

0 голосов
/ 24 октября 2018

Вы можете использовать это регулярное выражение, которое не будет совпадать, если введены только цифры.Он будет совпадать, только если на входе есть хотя бы одна цифра и один алфавит, согласно вашим текущим требованиям.Здесь минимальная длина пароля равна 2, и вы можете указать любую длину, указав здесь число {N,}. Вы можете дополнительно настроить регулярное выражение в случае, если у вас есть другие аналогичные требования в отношении набора символов, или дайте мне знать, и я могу дополнительно обновить регулярное выражение.

^(?=.*[A-Za-z])(?=.*\d).{2,}$

Демо,

https://regex101.com/r/Fv7cw7/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...