Je valide la saisie du texte uniquement dans mon champ
dans mon login.component.ts p> et dans le login.component.html p> 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);
}
}
3 Réponses :
Vous devez utiliser le validateur de motif:
<input type="text" matInput placeholder="Usuario" formControlName="userName" ngModel pattern="[a-zA-Z ]*">
Cela ne fonctionne pas car le tableau ASCII est différent entre Mac et Windows.
Table de Windows < / p>
Table Mac P>
Dans votre cas, utilisez Validation de modèle angulaire . P>
Exemple: < / p>
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;
}