Показать сообщение отдельно
  #1 (permalink)  
Старый 28.08.2018, 13:26
DVV DVV вне форума
Кандидат Javascript-наук
Отправить личное сообщение для DVV Посмотреть профиль Найти все сообщения от DVV
 
Регистрация: 26.12.2017
Сообщений: 125

Как изменить регулярное выражение
Необходимо регулярное выражение, которое должно запретить ввод в инпут точек, запятых, буквы ё и +. Однако получилось не совсем. Текущий вариант при помощи дополнительного скрипта сразу же обнуляет инпут при вводе точки, как отдельно, так и в составе дробного числа, но при вводе запятой после цифры очищает инпут только тогда, когда дробное число полностью дописано, а не сразу после ввода запятой.

Кроме того, в консоль выдает такое сообщение:
The specified value "undefined" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?

<input type="text" id="input">
let input = document.getElementById('input');

input.value = input.value.replace(/[^\d,.]*/g)
                        		.replace(/^[^\d]*(\d+([.,]\d{0,5})?).*$/g, '$1');
Ответить с цитированием