Я использовал приведенный ниже код в качестве файла TS, всегда первый аргумент работает перед "||".Только регулярное выражение должно манипулировать.
phoneNumber: ['', [Validators.required, Validators.pattern(('^[0]{1}[1-9]{9}$')||('^\\+[0-9]{2,3}[0-9]{9}$'))]]
и HTML выглядит следующим образом
<div>
<label for="phoneNumber">Phone Number</label>
<input formControlName="phoneNumber" placeholder="Phone Number" class="form-control">
<small>e.g. +251912121212, 0912121212</small>
<div *ngIf="phoneNumber.invalid && (phoneNumber.dirty || phoneNumber.touched)">
<small *ngIf="preferenceList.hasError('required',['phoneNumber'])" style="color : red !important;"
class="form-text text-muted">this
field is required
</small>
<small *ngIf="preferenceList.hasError('pattern',['phoneNumber'])" style="color : red !important;"
class="form-text text-muted">Phone
number is not valid yet
</small>
</div>
</div>
Как использовать оба поля в одном поле?