如何在这个正则expression式中包含负数小数?
我如何通过这个正则expression式匹配负数? 这个正则expression式可以正常工作,但我希望它也允许负值,例如-10,-125.5等
^[0-9]\d*(\.\d+)?$
谢谢
你应该添加一个可选的连字符在开始时join-?
( ?
是一个量词,表示一个或零个事件 ):
^-?[0-9]\d*(\.\d+)?$
我用Rubular对这些值进行了validation:
10.00 -10.00
并如预期的那样匹配。
一些正则expression式示例:
正整数 :
^\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}$
date (日/月/年/月/年)
^([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+)?(\.\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
这将允许积极和消极的整数
ValidationExpression = “^ – ?[0-9] \ d *(\ d +)$”
我有一些关于Django的正则expression式的实验,这需要从负数到正数
^(?P<pid>(\-\d+|\d+))$
让我们把注意力集中在这个(\-\d+|\d+)
部分而忽略别人,这个分号|
意思是在正则expression式中的OR ,那么负值将与这个\-\d+
部分匹配,正值到这个\d+
只需添加一个0或1个标记:
^-?[0-9]\d*(.\d+)?$
对于负数只,这是完美的。
^-\d*\.?\d+$