Как избежать нескольких десятичных знаков с помощью регулярных выражений - PullRequest
1 голос
/ 18 марта 2019

У меня есть текстовое поле, в котором я хотел бы ограничить число, чтобы разрешить только одну десятичную точку.

Я использовал регулярные выражения для обработки этого, но когда я пытаюсь дать ввод, он не позволяет.

Принимая во внимание, что если я начну с десятичной точки, это позволяет.

Я хотел бы получить вывод:

1.33
12.33

Но это работает как

.33

Код:

  const onlyNums = value.replace(/^\d+(\.\d+)?$/, '');

Ответы [ 2 ]

1 голос
/ 18 марта 2019

Вместо регулярного выражения вы можете просто проверить, равно ли Number значение ввода без строгой проверки типа.Как только пользователь вводит вторую точку (или что-то еще, кроме числа), возвращается false

document.getElementById('foo').addEventListener('keyup', e => {
	console.log(Number(e.target.value) == e.target.value);
})
<input id="foo">
0 голосов
/ 18 марта 2019

попробуйте это сработает, замените это регулярное выражение

/ ^ \ d + (. \ Д {1,2})? $ / * * 1003

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...