Я пытаюсь проверить числовое поле в IE 11.
<input type="number" name="amount" [(ngModel)]="amount" (keypress)="validateNum($event) />
И в машинописном тексте
private validateNum(event: KeyboardEvent): void {
const pattern = /^\d{1,3}[.]\d{1,6}$/g;
let inputChar = String.fromCharCode(event.charCode);
if(!pattern.test(inputChar)) {
event.preventDefault();
}
}
Здесь я пытаюсь ограничить ввод тремя цифрами и 5 десятичными знаками. Проблема, с которой я столкнулся, - проверка regEx для каждой нажатой клавиши (не проверка после нажатия 3 цифр), и она не позволяет вводить какой-либо номер. Как проверить число после того, как числа достигнут ограничения? Или можно проверить без regEx в Angular2?? Я новичок в Angular и нуждаюсь в предложениях.
Там есть удивительная библиотека, называемая текстовой маской. Вы можете легко создать маску и ограничить пользователя вводить 3 цифры и 5 десятичных знаков.
mask = [/\d/, /\d/,/\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/]
Измените keypress
для blur
. Таким образом, он проведет проверку, когда управление теряет фокус.