У меня есть небольшая форма, где пользователи вводят депозит в долларовой сумме. Эта сумма может быть положительной или отрицательной. Я пытаюсь проверить форму каждый раз, когда нажата клавиша для предотвращения ввода букв или символов.JavaScript onkeyup regular expression
Рассмотрит функцию ниже:
var deposit = document.getElementById("deposit");
deposit.onkeyup = function() {
var PATTERN = /\d$/;
if (!deposit.value.match(PATTERN)) {
deposit.value = deposit.value.replace(deposit.value.slice(-1), "");
}
}
Это прекрасно работает, и денди, если вы только хочешь, чтобы пользователь мог вводить цифры. Любой другой персонаж будет просто удален. Там, где у меня возникают проблемы, появляется картина, которая будет работать «на лету», чтобы соответствовать положительной или отрицательной валюте (без знака доллара). Пользователи должны иметь возможность ввести необязательный отрицательный знак, по крайней мере одно число, за которым следует десятичная точка, а затем еще 2 числа.
депозит составляетПример:
0,09
100,45
4032,34
-0,90
-54,56
-1353,00
Любая помощь, пришедшая с шаблоном или, возможно, даже лучшим методом, будет с благодарностью оценена. Пожалуйста, дайте мне знать, требуется ли более подробная информация.
Ваш заменить функции несовершенна. Когда запускается событие «keyup», возможно, что в поле ввода введено более одного символа. Также * возможно, что пользователь не помещает каретку в конец, в результате чего ваша функция также ломается. –