Редактировать : Вам просто нужно обернуть валидаторы в массив.
this.ersaForm = this._fb.group({
phone: ['', [Validators.required, phoneCheck('')]],
});
Кроме того, просто для предложения вы можете удалить эти строки из вашего валидатора:
phoneVal = phoneVal.replace('(', '');
phoneVal = phoneVal.replace(')', '');
phoneVal = phoneVal.replace('-', '');
phoneVal = phoneVal.replace('_', '');
phoneVal = phoneVal.replace(' ', '');
и вместо этого используйте атрибут unmask
p-inputMask
, чтобы сохранить значение вашей модели в чистоте:
<p-inputMask mask="(999) 999-9999" formControlName="phone"
inputStyleClass="form-control"
[unmask]="true"
[style]="{'width': '100%','height':'34px'}" id="phoneId"
placeholder="Phone (required)">
</p-inputMask>
Обновление : после игры немного больше, я заметилp-inputMask
не поддерживает другие валидаторы, он предоставляет только атрибут required
, даже если вызывается пользовательский валидатор, сам элемент управления останется действительным.