2016-03-17 10 views
1

Я не могу найти регулярное выражение, чтобы зафиксировать поплавок между 3.0 и 5.5.Regex для захвата диапазона поплавков (3.0 - 5.5)

Это то, что у меня есть до сих пор: /^[3-5]+(\.[0-9]{1,2})?$/.

+3

Не забудьте показать свои попытки – anubhava

+0

меня это до сих пор: '/^[3-5] + (\. [0-9] {1,2})? $ /' –

+3

Вы уверены, что для этого вам нужно регулярное выражение? как насчет parseFloat? можете ли вы указать, зачем это нужно? – llamerr

ответ

3

Диапазон длин волн и регулярное выражение не идут рука об руку. Но так как ваш диапазон меньше. Это сработает.

Regex:\b([3-4]\.[0-9]|5\.[0-5])\b

Объяснение:

  • [3-4]\.[0-9] будет соответствовать от 3.0 к 4.9.

  • 5\.[0-5] будет соответствовать от 5.0 по 5.5.

  • \b с обеих сторон не позволит номерам предшествовать или следовать.

Для проверки полной строки, чтобы быть в диапазоне, указанном вы можете использовать:^([3-4]\.[0-9]|5\.[0-5])$

Regex101 Demo

+0

Вы должны добавить какие-то границы, или это будет соответствовать 3.2 из 13.2. Кроме того, поплавки могут иметь не более 1 десятичной точки. –

+0

@SebastianProske: Вы правы в отношении границ. Я добавлю его сейчас. ОП не указывал больше, чем одно десятичное место. Поэтому я держал его до одного места. –

+1

'[^ \ d]' может совпадать с одним пробелом. Как предположил @SebastianProske, его можно улучшить с помощью '\ b ([3-4] \. [0-9] | 5 \. [0-5]) \ b'. – Quinn

Смежные вопросы