이 정규식으로 음수를 어떻게 일치시킬 수 있습니까? 이 정규식은 양수 값으로 잘 작동하지만 -10, -125.5 등과 같은 음수 값도 허용하고 싶습니다.
^[0-9]\d*(\.\d+)?$
감사
이 정규식으로 음수를 어떻게 일치시킬 수 있습니까? 이 정규식은 양수 값으로 잘 작동하지만 -10, -125.5 등과 같은 음수 값도 허용하고 싶습니다.
^[0-9]\d*(\.\d+)?$
감사
답변:
당신은 추가하여 시작 부분에 선택적 하이픈을 추가해야합니다 -?
( ?
A는 한정 기호는 의미 하나 명 영 발생을 ) :
^-?[0-9]\d*(\.\d+)?$
다음 값으로 Rubular에서 확인했습니다.
10.00
-10.00
둘 다 예상대로 일치했습니다.
^-?[0-9]\d*(\.\d+)?$
^[-+]?[0-9]\d*(\.\d+)?$
몇 가지 정규식 예 :
양의 정수 :
^\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}$
날짜 (dd mm yyyy, d / m / yyyy 등) :
^([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}$
UPDATED (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
-*
하기 -?
때문에로 변경하십시오 -------------
.
이것은 양의 정수와 음의 정수를 모두 허용합니다
ValidationExpression = "^-? [0-9] \ d * (\ d +)? $"
음수에서 양수로 필요한 장고 URL의 정규식에 대한 몇 가지 실험이 있습니다.
^(?P<pid>(\-\d+|\d+))$
이 (\-\d+|\d+)
부분 에 초점을 맞추고 다른 부분을 무시 하겠습니다 .이 세미콜론 |
은 정규식에서 OR 을 의미합니다 . 그러면 음수 값이이 \-\d+
부분 과 일치 하고 양수 값 이이 부분 과 일치 합니다.\d+
0 또는 1 토큰을 추가하기 만하면됩니다.
^-?[0-9]\d*(.\d+)?$
음수에 대해서만 완벽합니다.
^-\d*\.?\d+$