Страницы

Поиск по вопросам

среда, 29 января 2020 г.

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

#регулярные_выражения


Есть регулярка ^([0-9]*\.[0-9]+)$, как сделать чтобы она пропускала числа с плавающей
точкой и запятой?
    


Ответы

Ответ 1



Замените \. на [.,] и уберите лишние скобки: ^[0-9]*[.,][0-9]+$ Чтобы пропускала целые числа, добавьте квантификатор ?: ^[0-9]*[.,]?[0-9]+$ ^ См. демо ^ - начало строки [0-9]* - 0 и более цифр [.,] - точка или запятая ([,.]? - одна или ноль запятых или точек) [0-9]+ - 1 и более цифр $ - конец строки. Если нужно более "продвинутое" выражение, можно воспользоваться ^[-+]?[0-9]*[.,][0-9]+(?:[eE][-+]?[0-9]+)?$ или - чтобы поддерживало и целые, и дробные числа: ^[-+]?[0-9]*[.,]?[0-9]+(?:[eE][-+]?[0-9]+)?$ Это вариант выражения на regular-expressions.info.

Ответ 2



Для чисел с плавающей точкой есть несколько записей. Если вы подразумиваете наличие одной точки или запятой, то можно так: ^\d+(?:[\.,]\d+)?$ [0-9]* - вашем случае пропустит невалидную конструкцию , например .5656

Ответ 3



Так: ^(0|[1-9]\d*)([.,]\d+)? разрешает целые, дробные, исключает вариант с несколькими нулями перед дробной частью, на подобии: "000.0001".

Комментариев нет:

Отправить комментарий