为了验证文本是否为双精度值,我使用^[0-9]\d*(\.\d+)?$
. 但是,我应该使用什么正则表达式才能匹配空字符串或双精度值?
问问题
1366 次
3 回答
5
你的意思是在空字符串中?
你可以使用这个:
^([0-9]\d*(.\d+)?|)$
尽管要使其按预期工作,但您可能希望:
^([0-9]+(\.[0-9]+)?|)$
或者
^(\d+(\.\d+)?|)$
请注意,我在那里放了一个 or 运算符|
,因为它后面没有任何内容,它将匹配一个空行。
于 2013-06-30T13:30:35.167 回答
1
这应该工作
^\d*(?:\d\.\d+)?$
它将匹配以下字符串:
'123'
'123.4'
'0.3'
''
它不允许字符串以小数点开头(例如.3
);如果您也想允许,请使用以下命令:
^\d*(?:\.\d+)?$
如果您还希望允许以小数点结尾3.
的字符串(例如),请使用以下命令:
^\d*(?:\.\d*)?$
于 2013-06-30T13:54:40.487 回答
0
你也可以这样做
^\d+([.]\d+)?$|^$
于 2013-06-30T13:58:35.240 回答