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