3
votes

Validation du modèle de numéro de téléphone dans la conception de matériaux angulaires

Je souhaite valider le numéro de téléphone à l'aide du code de conception de matériau angulaire, mais le code ci-dessous ne fonctionne pas même lorsque j'entre un numéro de téléphone valide, mais aidez-moi s'il vous plaît

 <mat-form-field class="example-full-width">
                <input matInput placeholder="Phone number" formControlName="PhoneNumber"
                   [errorStateMatcher]="matcher" [(ngModel)]="PhoneNumber" required pattern="[6-9]\\d{9}" maxlength="10">
                     <mat-hint>Errors appear instantly!</mat-hint>
                     <mat-error *ngIf="emailForm.get('PhoneNumber').hasError('required')">
                       Phone number is <strong>required</strong>
                     </mat-error>
                      <mat-error *ngIf="!emailForm.get('PhoneNumber').hasError('required') &&emailForm.get('PhoneNumber').hasError('pattern')">
                      Please enter valid mumber
                     </mat-error>
          </mat-form-field>

    ngOnInit() {

    //Form Group
    this.emailForm = new FormGroup({
      PhoneNumber:new FormControl('',[Validators.pattern(/^[6-9]\d{9}$/)]),
    });
}

https://stackblitz.com/edit/angular -2m1vdq-7vzaq8? File = app% 2Finput-error-state-matcher-example.html


5 commentaires

Comment appelle-t-on un numéro de téléphone «valide»? Chaque pays aura probablement des conventions différentes sur la façon de les écrire (espaces, tirets, parenthèses, etc.) et également des longueurs différentes.


pouvez-vous s'il vous plaît me guider comment valider le numéro de téléphone de l'Inde


Pour ceux qui ne connaissent pas les numéros de téléphone indiens, pourriez-vous indiquer explicitement le format que vous essayez de valider dans la question?


Si je comprends bien vos exigences, je pense que vous devez écrire une expression régulière pour vos champs de saisie.Similaire à votre numéro de téléphone, vous devrez valider que dans le champ de nom, l'utilisateur ne devrait pas être en mesure de saisir des caractères spéciaux et des chiffres. et facile.


votre nouveau paramètre FormControl PhoneNumber a un "[" mal placé devant les validateurs. Déplacez-le après le "(". New FormControl (['', Validators.pattern (/ ^ [6-9] \ d {9} $ /)])


3 Réponses :


1
votes

vous pouvez essayer le regex ci-dessous, cela a fonctionné pour moi

/ ^ [0-9] {10,10} $ /



-1
votes

Hier, j'ai eu le même problème, mon problème était de supprimer le modèle de formControl et de l'insérer simplement en html

  selectRung = new FormControl(null, [Validators.required]);

Et voici mon exemple d'utilisation:

      <mat-form-field class="rung">
        <input matInput [formControl]="selectRung" [(ngModel)]="rung"
        placeholder="Rung" type="number" pattern="^\d*[0-9]\d*$"
        name="rung" [value]="rung" min="0" id="rung"
          required="true">
          <mat-error *ngIf="selectRung.hasError('required')">Rung is required!</mat-error>
          <mat-error *ngIf="selectRung.hasError('pattern')">Only positive or 0!</mat-error>
      </mat-form-field>


0 commentaires

0
votes

Essayez ceci,

  ngOnInit() {

    let MOBILE_PATTERN = /[0-9\+\-\ ]/;

    this.emailForm = new FormGroup({
      PhoneNumber:new FormControl('',[Validators.pattern(MOBILE_PATTERN)])
    });
  }


0 commentaires