Ich versuche, eine benutzerdefinierte Validierung für die Telefonnummer (Indien) zu schreiben. Mein Problem ist, dass sie sowohl für die Handynummer als auch für die Festnetznummer validiert werden sollte. Ich bin dankbar, wenn mir jemand eine Lösung für meinen Validierungscode gibt

contact:['', [Validators.required,Validators.pattern("/^[0-9]{10,10}$/")]],

HTML Quelltext:

<div *ngIf="(submitted||f.contact.touched) && f.contact.invalid" class="error-msg">
    <div *ngIf="f.contact.errors.required">contact  is required</div>
    <div *ngIf="f.contact.errors.pattern">Please enter 10 digit Number</div>
</div>
3
swagath 20 Jän. 2019 im 08:17

3 Antworten

Beste Antwort

Das würde mir gefallen:

contact = new FormControl('', [Validators.required, Validators.pattern("^[0-9]{10,12}$")]);

Regex: ^[0-9]{10,12}$

Wo,

[0,9]   - Accept 0 to 9 numbers
{10,12} - Range

StackBlitz

1
Prashant Pimpale 20 Jän. 2019 im 06:25

Dies ist eine telefonische Validierung für die Winkel-App

Wenn Sie eine Validierung mit Ländercode wünschen

export class CustomValidators {
  static phoneNumber(countryPhoneCode = '*'): ValidatorFn {
    return Validators.pattern('([+]'+ countryPhoneCode + ')?([0-9]{9,12})$');
  }

}

Verwenden Sie es jetzt in Ihrer Formulargruppe

this.formbuilder.group({
      phone: ['', [CustomValidators.phoneNumber('237')]]
    });
0
NKUMBE AURELIEN 15 Jän. 2020 im 10:33

Wenn Sie sich auf die Validierung beziehen, dass der Benutzer eine gültige Codenummer (Vorwahl, Handynummernpräfix) eingegeben hat, sollten Sie einen benutzerdefinierten Validator schreiben. Möglicherweise ist der beste Weg, eine serverseitige Validierung durchzuführen, damit Sie die Validierungslogik hinzufügen oder ändern können, ohne das Frontend erneut bereitzustellen.

-1
Dasun 20 Jän. 2019 im 06:10