Дополнительно
Простое регулярное выражение для десятичной дроби с точностью 2
Каково регулярное выражение для десятичной дроби с точностью до 2?
Достоверные примеры:
123.12
2
56754
92929292929292.12
0.21
3.1
Неправильные примеры:
12.1232
2.23332
e666.76
Десятичная точка может быть необязательной, также могут быть включены целые числа.
258
17
Допустимые маркеры regex зависят от реализации. Общей формой является:
Более компактный:
Оба предполагают наличие хотя бы одной цифры до и одной после десятичного знака.
Чтобы потребовать, чтобы вся строка была числом такого вида, оберните выражение тегами start и end, например (в форме Perl'а):
Чтобы подобрать числа без ведущей цифры перед десятичной дробью (
.12
) и целые числа с последующим периодом (12.
), исключив при этом ввод одного периода (.
), попробуйте сделать следующее:Добавлено
Дробная часть обернута в
()?
, чтобы сделать ее необязательной. Имейте в виду, что это исключает такие формы, как12.
Включая форму^\d+\\\\\.?\d{0,2}$
.Добавлено
Используйте
^\d{1,6}(\.\d{1,2})?$
, чтобы остановить повторение и дать ограничение на целую часть десятичного значения.И поскольку регулярные выражения ужасны для чтения, а тем более для понимания, здесь приведен словесный эквивалент:
Вы можете заменить
[0-9]
на\d
в большинстве реализаций регулярных выражений (включая PCRE, наиболее распространенную). Я оставил[0-9]
, так как считаю, что так легче читать.Также, вот простой скрипт на Python, который я использовал для проверки:
Включает необязательный знак "минус" и запретить номера типа
015
(что может быть ошибочно принято за восьмеричных чисел) написать:Для чисел, которые Дон'т иметь разделителя тысяч, мне нравится это простое, компактное выражение:
или, чтобы не ограничиваться точности 2:
Последний матчей<БР> 1<БР> 100<БР> 100.<БР> 100.74<БР> 100.7<БР> 0.7<БР> .7<БР> .72<БР>
И это вовсе'т соответствовать пустая строка (как и \D.?\д б)
Я использую этот один до двух знаков после запятой:<БР>
(^(\+|\-)(0|([1-9][0-9]*))(\.[0-9]{1,2})?$)|(^(0{0,1}|([1-9][0-9]*))(\.[0-9]{1,2})?$)
передает:<БР> .25<БР> 0.25<БР> 10.25<БР> +0.25<БР> <БР> не'т пройти:<БР> -.25<БР> 01.25<БР> 1.<БР> 1.256<БР>Будет делать вещи, как
12
. принято. Это не то, что обычно принято, но если в случае вы должны быть “гибкими”, то есть один путь. И, конечно,[0-9]
можно заменить\д
, Но я предполагаю, что это более читабельным этот путь.Попробуйте это
Это позволит позитивные и негативные признаки также.
Главный ответ является неправильным, потому что он применяется
5.
или5,
входыэтот код справиться с этим (но в моем примере отрицательных чисел запрещены):
результаты ниже:
В общем, т. е. неограниченное количество десятичных разрядов:
^-?(([1-9]\Д*)|0)(.0*[1-9](0*[1-9])*)?$
.Это работало со мной:
*Группа 1 - это номер вашего поплавка и группа 2** - это только часть.
Я попробовал один с моим проектом. Это позволяет цифры С
+ | -
признаки, а также.Не нужно ли учитывать
e
вe666.76
?С
добавляя мой ответ, кто-то может оказаться полезным или, может быть, правильно у меня тоже.
Хром 56 не принимает такого рода моделей (хром 56 является аккпетинг 11.11. дополнительный .) с Количество, тип использования в качестве текста как прогресс.
в <тип входного=и"текст" с НГ-модель=то"/^[0-9]+(.[0-9]{1,2})?$/&и" />
Это позволит десятичных возведения в степень и до 2 цифр ,
Демо
функция будет проверять любое десятичное число в число, погода и после запятой или нет, он говорит: "правильный номер на" иначе "Пожалуйста, введите только цифры на текстовом поле&.мне оповещение придет.
Спасибо... :)