双精度值或空字符串的正则表达式:^ [0-9] \ d *(\。\ d +)?$

时间:2013-06-30 13:28:30

标签: regex

如果文本是双精度值,则使用^[0-9]\d*(\.\d+)?$进行验证。但是,我应该使用什么正则表达式,以便空字符串或双精度值匹配?

3 个答案:

答案 0 :(得分:5)

你的意思是在空字符串中?

你可以用这个:

^([0-9]\d*(.\d+)?|)$

虽然为了使其按预期工作,但您可能需要:

^([0-9]+(\.[0-9]+)?|)$

^(\d+(\.\d+)?|)$

注意我在那里放了一个或运算符|,因为它后面没有任何内容,它会匹配一个空行。

答案 1 :(得分:1)

这应该有效

^\d*(?:\d\.\d+)?$

它将匹配以下字符串:

'123'
'123.4'
'0.3'
''

不允许字符串以小数点开头(例如.3);如果你也想允许,请使用:

^\d*(?:\.\d+)?$

如果你还想允许带有小数点的 end 字符串(例如3.),请使用:

^\d*(?:\.\d*)?$

答案 2 :(得分:0)

您也可以这样做

^\d+([.]\d+)?$|^$