Для проверки ввода (ограничение пользователя, чтобы он не мог ввести неправильный ввод), я хотел бы создать регулярное выражение в JavaScript, которое ограничивает так:
Есть два числа, разделенных дефисом, каждоечисло может иметь десятичную точку на конце, за которой могут следовать до трех чисел (3dp)
все, что набирает до этого, должно проходить через регулярное выражение, поэтому;
0
02
023.
023.2
023.22
023.223-
023.223-3
023.223-33
023.223-333
023.223-333.
023.223-333.3
023.223-333.33
023.223-333.333
- все допустимые значениячто-либо вне этого формата должно быть недопустимым, например;
0.2343
0.233-0.2343
У меня есть некоторый успех при проверке чисел по обе стороны от дефиса;
^\d*\.?(\d{1,3})?$
Затем я включаю это дляобе стороны с дефисом посередине;
^\d*\.?(\d{1,3})?\-?\d*\.?(\d{1,3})?$
Проверьте это здесь: https://regex101.com/r/klw01G/1
Проблема с этим решением состоит в том, что оно позволяет первому набору чисел иметь неограниченное количество знаков после запятой.Я запутался, потому что это относится ко второму набору, как и ожидалось, ограничиваясь 3dp.
Какое решение ограничить первый набор 3dp?Должно ли быть условие, основанное на символе .
?