Можно ли изменить шаблон Validator, чтобы включить удаление пробелов, записанных в поле ввода? - PullRequest
0 голосов
/ 05 февраля 2020

У меня работает валидатор, в котором я проверяю формат введенного телефона на совместимость с информацией, запрашиваемой серверной частью. Можно ли изменить это регулярное выражение так, чтобы оно удаляло или не учитывало, если между введенными числами пишутся пробелы? вот мой валидатор

    this.formGroup = this.fb.group({

      mobilePhone: [
        '',
        [
          Validators.required,
          CustomValidators.patternValidator(/^((\+)33|0|0033)[1-9](\d{2}){4}$/, { onlyNumber: true })
        ]
      ],
...


Заранее спасибо?

1 Ответ

3 голосов
/ 05 февраля 2020

REGEX:

/^(\+\d{1,3}[- ]?)?\d{10}$/

Вы можете создать регулярное выражение и проверить его на regex101.com Здесь я сделал для проверки номера мобильного телефона

Если Regex не работает, вы можете создать службу для проверки номера мобильного телефона, например:

Файл SERVICE (validaion.service.ts)

import * as PhoneNumber from 'awesome-phonenumber';

 static mobileNumberValidator(control) {
    const mobile = new PhoneNumber.default(control.value, 'US');
    return (!mobile.isValid() || !mobile.isMobile()) ? { invalidMobile: false } : null;
  }

TS ФАЙЛ

mobileNumber: ['', [Validators.required, 
Validators.maxLength(13), ValidationService.mobileNumberValidator]],

HTML

<p class="error" *ngIf="editProfileForm.get('mobileNumber').touched && yourformName['mobileNumber'].errors ">
<span class="error-message" 
*ngIf="!editProfile['mobileNumber'].errors.required && !editProfile.mobileNumber.errors.invalidMobile">
Cell phone number is not valid</span>
 </p>
...