Как составить регулярное выражение, чтобы ограничить ввод чисел после запятой?

Как изменить регулярное выражение value.replace(/[^0-9.]/g, '') для ограничения ввода одной точки и двух цифр после точки?
  • 27 сентября 2023 г. 8:38
Ответы на вопрос 3
1. Для ограничения ввода чисел после запятой можно использовать следующее регулярное выражение: /^\d+(\.\d{0,2})?$/

- ^ - начало строки
- \d+ - одна или более цифр до запятой
- (\.\d{0,2})? - необязательная группа, в которой находится точка и от 0 до 2 цифр после точки
- $ - конец строки

Пример использования:

```javascript
const regex = /^\d+(\.\d{0,2})?$/;
const input = "12.34";
console.log(regex.test(input)); // выведет true

const input2 = "12.345";
console.log(regex.test(input2)); // выведет false
```

2. Чтобы ограничить ввод одной точки и двух цифр после нее, можно изменить регулярное выражение следующим образом:

value.replace(/^(\d+\.{0,1}\d{0,2}).*/g, '$1')

- ^(\d+\.{0,1}\d{0,2}) - начало строки, захватывает одну или более цифр перед точкой (если есть), саму точку (если есть) и до двух цифр после точки.
- .* - заменяет все остальное в строке.
- $1 - заменяет найденное значение на то, что было захвачено в первой группе (одна или более цифр перед точкой и до двух цифр после).

Пример использования:

```javascript
const regex = /^(\d+\.{0,1}\d{0,2}).*/g;
let input = "12.3456";
input = input.replace(regex, '$1');
console.log(input); // выведет "12.34"
```
value.replace(/[^0-9.]/g, '').replace(/^(\d*\.\d\d).+$/, '$1') 
 Оставь только цифры и точки, удалите все остальные символы и оставьте только два знака после точки.
Похожие вопросы