2011-09-19 2 views
0

В веб-приложении, проверяя текстовое поле с использованием обычного выражения, я написал выражение для проверки только цифр, начинающихся с нуля, с 3 цифрами после десятичных точек. Но если я печатаю только одну цифру, это дает мне сообщение. Можете ли вы помочь мне с регулярным выражением? Я ищу выражение, которое не будет принимать на себя ведущую цифру ноль и принимать только 3 знаков после запятой, как 12.336, 1.254, 10.20 и т.д.Проверка количества с использованием регулярного выражения

+0

Вы хотите точно 3 десятичных или от 0 до 3? В примере вы говорите '10.20', который равен 2 десятичным. – Toto

ответ

1

В зависимости от того, что вы хотите:

Это соответствует номерам не начинаются с элементом 0 и имеют ровно 3 десятичного

^[1-9]\d*\.\d{3}$ 

Это будет соответствовать номерам не начинаются с элементом 0 и с 1 до 3 десятичных или никто.

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

Это должно сделать трюк:

[1-9]\d*\.?\d{0,3} 

Если вы хотите игнорировать пробелы, просто добавьте \ с *:

\s*[1-9]\d*\.?\d{0,3}\s* 

Кстати, есть тонны визуальных инструментов для написания регулярных выражений - рекомендую Expresso.

0

Это то, что вы хотите:

^[1-9]\d*.?\d{0,3}$ 

Примечание это также не будет, если есть пробелы в любом конце строки, удалить ^ в начале и $ в конце концов, если это не так желательно.

+1

Это также подтверждает 'X.' –

+0

@Tim - Так оно и было! Я изменил свой ответ –

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