Подтвердить что ты не робот

Как включить в это регулярное выражение отрицательные десятичные числа?

Как я могу сопоставить отрицательные числа этим регулярным выражением? Это регулярное выражение отлично работает с положительными значениями, но я хочу, чтобы оно также допускало отрицательные значения, например. -10, -125,5 и т.д.

^[0-9]\d*(\.\d+)?$

Спасибо

4b9b3361

Ответ 1

Вы должны добавить необязательный дефис в начале, добавив -? (? - quantifier, что означает одно или нулевое появление ):

^-?[0-9]\d*(\.\d+)?$

Я проверил его в Rubular с этими значениями:

10.00
-10.00

и оба соответствуют ожидаемому.

Ответ 2

Некоторые примеры регулярных выражений:

Положительные целые числа:

^\d+$

Отрицательные целые числа:

^-\d+$

Integer

^-?\d+$

Положительный номер:

^\d*\.?\d+$

Отрицательное число:

^-\d*\.?\d+$

Положительное число или отрицательный номер:

^-?\d*\.{0,1}\d+$

Номер телефона:

^\+?[\d\s]{3,}$

Телефон с кодом:

^\+?[\d\s]+\(?[\d\s]{10,}$

Год 1900-2099:

^(19|20)[\d]{2,2}$

Дата (дд мм гггг, д/м/гггг и т.д.):

^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$

IP v4:

^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$

Ответ 3

Я не знаю, зачем вам этот первый [0-9].

Try:

^-?\d*(.\d+)?$

Обновление

Если вы хотите быть уверены, что у вас будет цифра в одном месте, используйте

^-?\d+(.\d+)?$

Ответ 4

Это позволит использовать символ - или + только после следующего числа:

 ^([+-](?=\.?\d))?(\d+)?(\.\d+)?$

Ответ 5

ОБНОВЛЕНО (13/08/2014): Это лучший код для положительных и отрицательных чисел =)

(^-?0\.[0-9]*[1-9]+[0-9]*$)|(^-?[1-9]+[0-9]*((\.[0-9]*[1-9]+[0-9]*$)|(\.[0-9]+)))|(^-?[1-9]+[0-9]*$)|(^0$){1}

Я пробовал с этими числами и прекрасно работал:

-1234454.3435
-98.99
-12.9
-12.34
-10.001
-3
-0.001
-000
-0.00
0
0.00
00000001.1
0.01
1201.0000001
1234454.3435
7638.98701

Ответ 6

Это позволит как положительные, так и отрицательные целые числа

ValidationExpression = "^ -? [0-9]\d * (\ d +) $"

Ответ 7

У меня есть некоторые эксперименты по регулярному выражению в django url, которые требуются от отрицательных до положительных чисел

^(?P<pid>(\-\d+|\d+))$

Если мы сосредоточились на этой части (\-\d+|\d+) и игнорируем другие, эта точка с запятой | означает OR в регулярном выражении, тогда отрицательное значение будет соответствовать этой части \-\d+, а положительное значение - это \d+

Ответ 8

Просто добавьте токен 0 или 1:

^-?[0-9]\d*(.\d+)?$

Ответ 9

Только для отрицательного числа это идеально.

^-\d*\.?\d+$

Ответ 10

Регулярное выражение для числа, необязательная десятичная точка, необязательный минус:

^-?(\d*\.)?\d+$;

работает для отрицательного целого, десятичного, отрицательного с десятичным

Ответ 12

^(-?\d+\.)?-?\d+$

разрешать:

23425.23425
10.10
100
0
0.00
-100
-10.10
10.-10
-10.-10
-23425.23425
-23425.-23425
0.234

Ответ 13

^[+-]?\d{1,18}(\.\d{1,2})?$

принимает положительные или отрицательные десятичные значения.