2016-01-19 3 views
-1

Допустимые значения для проверки модели недвижимости в проекте MVC5:Регулярное выражение для положительного десятичной запятой сепараторе с 2 знаками после запятой MVC

десятичных чисел от 0,01 до 999,99, но я могу принять 0,1 или 9 или 9,01

0,01 

,1 

,20 

1 

1,2 

1,20 

00,2 

00,20 

Теперь у меня есть:

[RegularExpression(@"^(((\d{1,3})(,\d{3})*)|(\d+))(.\d+)?$", ErrorMessage = "Largura inválida.")] 

Но он принимает "" и более 2 знаков после запятой.

+0

Какой вопрос, в чем проблема? Какой код вы пытались решить вашу проблему? –

+0

Привет, спасибо, я отредактировал этот вопрос. – Patrick

+0

hi @ WiktorStribiżew спасибо, но он принимает более двух знаков после запятой – Patrick

ответ

2

Вы можете использовать

^(?!0?(,0?0)?$)([0-9]{0,3}(,[0-9]{1,2})?)?$ 

См regex demo

Объяснение:

  • ^ - начало строки
  • (?!0?(,0?0)?$) - отрицательный предпросмотр запрещая строку равным 0, 0,0, 0,00 или даже,0
  • ([0-9]{0,3}(,[0-9]{1,2})?)? - факультативно группа (соответствует одному или ноль раз из-за ? в конце), соответствующие
    • [0-9]{0,3} - zerot о три любые цифры
    • (,[0-9]{1,2})? - необязательно матчей группа запятой, за которой следуют 1 или 2 цифры
  • $ - конец строки
+0

Он принимает, 0 :( – Patrick

+0

Это не сейчас. –

+0

Отлично! сделал несколько тестов, и я думаю, что он работает. Мне пришлось найти это регулярное выражение для решения этой проблемы http: // stackoverflow.com/questions/34882732/validate-number-with-globalize-or-with-dataannotation-in-mvc Я не знаю, как, но глобализует его проблемы со словом «,». – Patrick

0

или использовать этот шаблон

^(?=.*[1-9])([0-9]{0,3}(?:,[0-9]{1,2})?)$ 

Demo

+0

Привет, спасибо альфа-браво. – Patrick

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