^ [。1-9] * \ d $允许多个点

时间:2012-12-20 15:25:01

标签: regex

  

可能重复:
  Regex for floating point?

我正在尝试使用正则表达式。

有效字符串为:
1
11
5
12222222233
1.2
0.5
1222.33444
12234.456
0

无效字符串

-2
SAN
2S2
S2S
ssss2ssss
25535535TY

但是这个正则表达式没有资格测试多个点(。) 如
1 ...... 5,
5..2233
1223 ... 5
这接受这些值作为有效字符串。
请帮我解决这个问题。

请注意,上述验证应通过。

2 个答案:

答案 0 :(得分:2)

那个正则表达式怎么样:\d*(\.\d+)?

修改

此正则表达式\d*(\.\d+)?也允许空值。

更新后的版本: \d*(\.)?\d+ 没有此问题。

请注意,由于\d仅匹配数字0..9

,因此不允许使用负值

答案 1 :(得分:1)

^\d*\.?\d*$应该可以做到这一点,但是一点思考并阅读有关正则表达式的更多内容会告诉你同样的事情。

没看到。单独或。最后是不允许的。所以^\d*(\.\d+)?$可以很好