Эта проверка возможна без использования конвейера для преобразования или преобразования его значения. Используя проверку mask
RxWeb.
@ rxweb / reactive-form-validators имеет проверку маски, которая может удовлетворить ваши требования к проверке. Он проверит ваш ввод в соответствии с требуемым форматом регулярного выражения и сохранит значение в его исходной форме, например: 9999999999
export class UserComponent implements OnInit {
userFormGroup: FormGroup
constructor(
private formBuilder: FormBuilder ) { }
ngOnInit() {
this.userFormGroup = this.formBuilder.group({
phoneNumber:['', RxwebValidators.mask({mask:'(999)-999 9999' })],
});
}
onSubmit(){
console.log(this.userFormGroup.value);
}
}
<div>
<form [formGroup]="userFormGroup">
<div class="form-group">
<label>Phone Number</label>
<input type="text" formControlName="phoneNumber" class="form-control" />
<small class="form-text text-danger" *ngIf="userFormGroup.controls.phoneNumber.errors"> {{userFormGroup.controls.phoneNumber.errors.mask.message}}<br/></small>
</div>
<button [disabled]="!userFormGroup.valid" class="btn btn-primary" (click)="onSubmit()">Submit</button>
</form>
</div>
Для реализации этого вам необходимо импортировать RxReactiveFormsModule
в основной модуль и использовать RxWebValidators
при инициализации formControl.
Вот ссылка stackblitz в приведенном выше примере: Открыть