Как я могу изменить эту логику проверки, чтобы можно было вводить символы и некоторые специальные символы? - PullRequest
0 голосов
/ 25 сентября 2019

В настоящее время в поле допускается вводить только символы, иначе выдается ошибка, указанная ниже в коде.Как я могу изменить эту логику, чтобы иметь возможность добавлять буквы, а также некоторые специальные символы, такие как дефис, апостроф и т. Д .?

    function NameValidate(control: FormControl) {
  if (typeof control.value !== 'string' || !/^[a-zA-Z\s]+$/g.test(control.value)) {
    return {
      error: 'Only characters allowed'
    };
  } else {
    return null;
  }
}

1 Ответ

0 голосов
/ 25 сентября 2019

Я полагаю, что ключ здесь - это оператор if

if (typeof control.value !== 'string' || !/^[a-zA-Z\s]+$/g.test(control.value))

Этот по существу говорит "если контрольное значение не является строкой ИЛИ не соответствует регулярному выражению /^[a-zA-Z\s]+$/, верните ошибку.

Таким образом, чтобы разрешить использование специальных символов, необходимо настроить регулярное выражение, чтобы разрешить их использование. Например, чтобы разрешить дефисы, измените регулярное выражение на /^[a-zA-Z\s-]+$/ (обратите внимание на добавленные - внутри скобок.

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