Угловой валидатор.pattern() не дает тех же результатов, что и движки регулярных выражений в Интернете

0

Вопрос

У меня есть группа по форме. И регулярное выражение для проверки имени. Ограничения для поля ввода имени следующие

  • требуемый.
  • является буквенно-цифровым.
  • начинается с алфавитов.
  • не содержит никаких специальных символов.

Мое регулярное выражение(^[a-zA-Z][a-zA-Z0-9]*$) работает нормально при проверке онлайн. regex-checking with regex101.com Но с angular FormControl отображается действительным для всех строк.

Может ли кто-нибудь объяснить, почему существуют такие расхождения между результатами с помощью углового валидатора.pattern() и движка js.

Я попробовал следующее безрезультатно (все это предложения из ответов stackoverflow):

  • Validators.pattern(/^[a-zA-Z][a-zA-Z0-9]*$/)
  • Validators.pattern('[a-zA-Z][a-zA-Z0-9]*')
const nameRegex='^[a-zA-Z][a-zA-Z0-9]*$'
this.signupForm = this.formBuilder.group({
      name: ['', Validators.required, Validators.pattern(nameRegex)],
      email: ['', [Validators.required, Validators.pattern(emailRegex)]],
      password: ['', Validators.compose([Validators.required, Validators.minLength(6)])],
      c_password: ['', Validators.compose([Validators.required, Validators.minLength(6)])]
angular regex
2021-11-24 06:05:45
1

Лучший ответ

0

Вы допустили ошибку в FormGroup. В name в валидаторах управления формами отсутствуют скобки.

name: ['', [Validators.required, Validators.pattern(nameRegex)]],
2021-11-24 06:42:41

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................