2017-01-27 3 views
2

Я работаю с веб-API, где мне нужно проверить данные, поэтому для этого я использую регулярное выражение. В Интернете у меня есть поле, где оно маскируется для этого поля, которое содержит только отрицательные числа до 4 цифр. Так же я поставил регулярное выражение в API, как показано ниже:выражение regex C# для проверки всех чисел, кроме нуля

[RegularExpression(@"^-\d{0,4}$", ErrorMessage = "The cond_ab field must be negative number and maximum length is 4")] 

Но его неудачу для случая, когда я прохожу 0, то его дает сообщение проверки. Поэтому мне нужно регулярное выражение для проверки числа, которое должно быть отрицательным, и до четырех цифр, но не должно пройти, если число равно 0

+0

Итак, вы хотите ненулевую цифру, за которой следует 0 до 3 больше цифр, которые могут быть равны нулю (\ d *.)? Или вы хотите разрешить начальные нули, такие как '-0034'? –

+0

Ваше текущее выражение также принимает только '-'. –

+0

@RobbyCornelissen 0 должен быть принят, что я пытаюсь достичь вместе с проверкой. Прямо сейчас, если я отправлю 0, его сообщение проверки валидации .. поэтому я хочу, чтобы 0 принималось – Mahajan344

ответ

2

Используйте это выражение для приема нуля (0) или любого отрицательного числа до 4 цифр :

@"^(0|-[1-9]\d{0,3})$" 

Если вы хотите принять -0, -0123 и любит, вы можете использовать:

@"^(0|-\d{1,4})$" 
+0

Я все еще получаю сообщение о проверке, если я отправлю значение поля как 0 – Mahajan344

+0

@ Mahajan344 Обновлено мой ответ –

+1

Пожалуйста, используйте '^ (0 | - [1-9] \ d {0,3}) $', потому что я довольно что '-0' не должен совпадать. Btw: можно также избежать только '-'. –

-2

используйте это выражение. Если вы пройдете -12, то он будет работать, если вы пройдете -012, затем дайте ошибку.

^- [1-9] \ d {0,4} $

+2

Это также будет работать для положительных чисел, и это не должно. –

+1

Aggred vera это неправильный анс. –

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