0
votes

Comment rendre mon champ de texte d'entrée uniquement permettre aux lettres correctement?

Je valide la saisie du texte uniquement dans mon champ

dans mon login.component.ts p> xxx pré>

et dans le login.component.html p> xxx pré>

Il fonctionne sous Windows mais sur le clavier Mac, ce n'est pas le cas. P>

[ SOLUTION STROND> POUR MOI] P >

Remplacez uniquement le Regexvalidator P>

import { Directive, Input, ElementRef, HostListener } from "@angular/core";
import { NgControl } from "@angular/forms";

@Directive({
  selector: "[OnlyNumber]"
})
export class OnlyNumber {
constructor(private el: ElementRef, private ngControl: NgControl) {}

@Input() OnlyNumber: boolean;

@HostListener("input", ["$event"])
@HostListener("past", ["$event"])
onInput(event) {
  const filteredValue = this.el.nativeElement.value.replace(
    /[yourRegex]/g,
    ""
  );
  this.ngControl.control.setValue(filteredValue);
  }
}


0 commentaires

3 Réponses :


0
votes

Vous devez utiliser le validateur de motif:

<input type="text" matInput placeholder="Usuario" formControlName="userName" ngModel pattern="[a-zA-Z ]*">


0 commentaires

0
votes

Cela ne fonctionne pas car le tableau ASCII est différent entre Mac et Windows.

Table de Windows < / p>

Table Mac

Dans votre cas, utilisez Validation de modèle angulaire .

Exemple: < / p> xxx


0 commentaires

1
votes

Vous pouvez modifier Vérifier le charcode par

function letterOnly(event) 
{
            var charCode = event.keyCode;

            if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 8)

                return true;
            else
                return false;
}


0 commentaires