2014-09-18 2 views
1

У меня есть следующее регулярное выражениеРегулярное выражение позволяет до 2 знаков после запятой опережающий 0

/^\d*[0-9](?:\.[0-9]{1,2})?$/ 

Как я могу изменить его так, что это позволит числа как .12 и .0? Я хочу сохранить его, чтобы они могли вводить только числовые значения, но мне нужно разрешить значения, как показано выше, без ведущих цифр.

В настоящий момент это работает хорошо, но только если вы обеспечиваете ведущий ноль.

Спасибо!

ответ

2

Вы можете использовать чередование:

/^(?:\d*[0-9](?:\.[0-9]{1,2})?|\.[0-9]{1,2})$/ 
+1

Отлично !!! Спасибо! Примите как правильный ответ, как только это позволит мне. – Phil

+0

Добро пожаловать, рад, что это сработало. – anubhava

2
^(?!^$)\d*[0-9]?(?:\.[0-9]{1,2})?$ 

Попробуйте this.See демо.

http://regex101.com/r/lE9oV4/1

+0

Это тоже работает, спасибо! – Phil

+0

Это также даст пустой ввод. – anubhava

+0

@anubhava теперь это не будет – vks

1

Вот это регулярное выражение:

/ 
^  # The string start with... 
\s* # Any leading spaces 
0*  # Any leading zeros 

# Now the number we want to match 
(  
    [0-9]?  # Maybe a positive number 
    # An optional decimal part 
    (?:   
     [.,]  # A decimal point or a comma 
     [0-9]{1,2} # One or two values after the comma 
    )? 
) 
0*  # Perhaps some trailing zeros 
/gmx 

Демо: http://regex101.com/r/cI8xP4/1

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