Задать вопрос
@palevg
Frontend developer

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

Помогите, плз, под конец дня голова совсем не варит((

Нужна регулярка для диапазона чисел Х, где 0<X<=100
Т.е. 0 не подходит, а 0.00001 подходит.
И, соответственно 100 подходит, а 100. или 100.0 и т.д. уже не подходит.

Пока осилил только такую:
^(?:100(?:\.0*)?|[1-9]?\d(?:\.\d*)?|\.\d+)$
Но она пропускает ноль, а так низзя...
  • Вопрос задан
  • 629 просмотров
Подписаться 1 Простой 9 комментариев
Решения вопроса 2
Alexandroppolus
@Alexandroppolus
кодир
^(?:0?\.\d*[1-9]\d*|100(\.0*)?|[1-9]\d?(\.\d*)?)$

состав:
0?\.\d*[1-9]\d* - любое число вида "0.хххх" или ".хххх", с тем чтобы среди иксов был хоть один не ноль.
100(\.0*)? - для вариантов "100", "100.", "100.00000"
[1-9]\d?(\.\d*)? - однозначные и двузначные числа, с необязательным десятичным хвостом.

если тебе ещё нужна экспоненциальная форма (с буквой E), то могу допилить, но пока влом, там несколько вариантов
Ответ написан
Комментировать
@palevg Автор вопроса
Frontend developer
Да, ларчик был совсем рядом)
Alexandroppolus, в любом случае вы мне помогли, спасибо!

Итоговая регулярка получилась такая:
^(?:0?\.\d*[1-9]+|100|[1-9]\d?(\.\d*[1-9]+)?)$
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы