Как мне сопоставить отрицательные числа с помощью этого регулярного выражения? Это регулярное выражение отлично работает с положительными значениями, но я хочу, чтобы оно также допускало отрицательные значения, например -10, -125,5 и т. Д.
^[0-9]\d*(\.\d+)?$
Благодарность
Ответы:
Вы должны добавить необязательный дефис в начале, добавив
-?
(?
является квантификатором, означающим одно или ноль вхождений ):^-?[0-9]\d*(\.\d+)?$
Я проверил это в Rubular со следующими значениями:
10.00 -10.00
и оба совпали, как ожидалось.
источник
^-?[0-9]\d*(\.\d+)?$
^[-+]?[0-9]\d*(\.\d+)?$
Некоторые примеры регулярных выражений:
Положительные целые числа :
Отрицательные целые числа :
Целое число :
^-?\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}$
источник
Я не знаю, зачем тебе это в первую очередь
[0-9]
.Пытаться:
^-?\d*(\.\d+)?$
Обновить
Если вы хотите быть уверены, что у вас будет цифра на месте единиц, используйте
^-?\d+(\.\d+)?$
источник
^-?\d+(\.\d+)?$
если это так , должно сработатьОБНОВЛЕНО (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
источник
-*
на,-?
потому что он совпадает-------------
.Это позволит использовать символ
-
или+
только тогда, когда за ним следует число:^([+-](?=\.?\d))?(\d+)?(\.\d+)?$
источник
Это позволит как положительные, так и отрицательные целые числа
источник
У меня есть несколько экспериментов с регулярным выражением в URL-адресе django, которые требовали от отрицательных до положительных чисел
^(?P<pid>(\-\d+|\d+))$
Давайте сосредоточимся на этой
(\-\d+|\d+)
части и проигнорируем другие, эта точка с запятой|
означает ИЛИ в регулярном выражении, тогда отрицательное значение будет соответствовать этой\-\d+
части, а положительное значение - этому.\d+
источник
Это сработало для меня, разрешив как отрицательные, так и положительные числа :
\-*\d+
При использовании C #:
Regex.Match(someString, @"\-*\d+").Value;
источник
Просто добавьте токен 0 или 1:
^-?[0-9]\d*(.\d+)?$
источник
Только для отрицательных чисел это идеально.
^-\d*\.?\d+$
источник
^[+-]?\d{1,18}(\.\d{1,2})?$
принимает положительные или отрицательные десятичные значения.
источник
Регулярное выражение для числа, необязательная десятичная точка, необязательно отрицательное значение:
^-?(\d*\.)?\d+$;
работает для отрицательного целого, десятичного, отрицательного с десятичным
источник
^(-?\d+\.)?-?\d+$
позволять:
23425.23425 10.10 100 0 0.00 -100 -10.10 10.-10 -10.-10 -23425.23425 -23425.-23425 0.234
источник
Если у вас есть это,
val="-12XXX.0abc23"
и вы хотите извлечь только десятичное число, в этом случае это regex (^-?[0-9]\d*(\.\d+)?$
) не поможет вам в этом.это правильный код с правильным регулярным выражением обнаружения:
var val="-12XXX.0abc23"; val = val.replace(/^\.|[^-?\d\.]|\.(?=.*\.)|^0+(?=\d)/g, ''); console.log(val);
источник