Tengo una función que me permite usar solo números usando una expresión regular, la validación funciona bien en un navegador web de escritorio, pero cuando abro la aplicación en un dispositivo Android con Chrome, la validación se interrumpe y permite escribir letras y símbolos.
Estoy usando Angular y aquí está mi función:
onlyNumber (event: KeyboardEvent) { let regex = /^\d*$/; const input = String.fromCharCode(event.key.charCodeAt(0)); if (!regex.test(input)) { event.preventDefault(); } }o solo número y letra
onlyNumberAndLetters = (event: KeyboardEvent) { let regex = /^[a-zA-Z0-9]*$/; const input = String.fromCharCode(event.key.charCodeAt(0)); if (!regex.test(input)) { event.preventDefault(); } }usando
<input type="text" class="form-control" minlength="8" maxlength="15" formControlName="secretNumber" (keypress)="onlyNumber($event)"> <input type="text" class="form-control" minlength="5" maxlength="25" formControlName="secretNumber2" (keypress)="onlyNumberAndLetters($event)">PD: Estoy usando un campo de tipo de texto, porque era la forma más fácil de lograr la regla de longitud mínima y longitud máxima.