我有这个表达
^(?!0*(\.0+)?$)(\d+|\d*\.\d+)$
它工作正常,除了我想要它除了逗号作为分隔符。使用这种模式,1,5或123是错误的。应该是真的。
具体地,
0 =假
0.0 =假
null = false
。 = false
,= false
0.123 = true
0,123 = true
.123 = true
,123 = true
123.123 = true
123,123 = true
答案 0 :(得分:2)
我认为你在寻找
^(?!0*[.,]?0+$)\d*[.,]?\d+$
请参阅regex demo
模式详情:
^
- 字符串开头(?!0*[.,]?0+$)
- 如果整个字符串等于0+零,后跟1或0个逗号或点,后跟一个或多个零(如果值为{{1},则会使匹配失败的负前瞻}},0000
,0
或0,000
,或.000
等。),000
- 零个或多个数字\d*
- 可选的逗号或点[.,]?
- 一位或多位\d+
- 字符串结束。请注意,在使用带有$
方法的模式时,您不需要^
和$
,但最好将它们保留在模式中以提高可读性,进一步测试。