2016-10-22 3 views
0

Я прошел через много потоков и есть много ответов на данную проблему. Но некоторые, как я не могу понять, что я делаю неправильно. Мое требование не совпадать с более чем 1 числовым после десятичного числа , а также не десятичные числа должны быть отброшены. напримерРегулярное выражение, ограничивающее 2 знака после запятой

Действительно

1.1 
12.1 
1234.1 
123456.0 
.1 

Invalid

.12 
123 
123.12 

То, что я написал это ^([0-9]?\.?)+\.?[0-9]{1}$

Когда я пытаюсь соответствовать 11.123 или 123 Ii получить матч. Что я делаю не так?

ответ

1

Это регулярное выражение работает для случая использования: ^\d*\.\d$
ГДЕ ^\d* матч от начала строки всех цифр (* оператора пребывания на ноль или более), то избежать . с \. и, наконец, \d$ совпадают только в том случае, если есть один символ до конца строки

+0

В этом регулярном выражении .1 не получается, что я имею в виду цифру до десятичной и одну после того, как десятичная точка должна пройти. – pankaj

+0

@sameer исправлено, я неправильно использую '+' вместо '*'. Теперь он соответствует всем значениям внутри допустимого блока и не соответствует всем остальным – Tinwor

+0

работает как шарм – pankaj

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