我有一个使用正则表达式来验证小数和自然数的表单,但是我有一个问题,这不验证空字段。我的常规表达是这样的:
"^([0-9])+\.[0-9]|[0-9]$"
为了使这个正则表达式验证空字段,我该怎么办?感谢。
答案 0 :(得分:3)
使用此正则表达式处理数字(仅正数)和空数。
^(?:[0-9]+(?:\.[0-9]+)?)?$
正则表达式的解释是:
NODE EXPLANATION
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
(?: group, but do not capture (optional
(matching the most amount possible)):
--------------------------------------------------------------------------------
[0-9]+ any character of: '0' to '9' (1 or more
times (matching the most amount
possible))
--------------------------------------------------------------------------------
(?: group, but do not capture (optional
(matching the most amount possible)):
--------------------------------------------------------------------------------
\. '.'
--------------------------------------------------------------------------------
[0-9]+ any character of: '0' to '9' (1 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
)? end of grouping
--------------------------------------------------------------------------------
)? end of grouping
--------------------------------------------------------------------------------
$ before an optional \n, and the end of the
string
答案 1 :(得分:1)
你是说这个吗?
"^(?:([0-9])+\.[0-9]*|[0-9]|)$"
此正则表达式包含无字符的额外可能性。
答案 2 :(得分:0)
尝试:
^([0-9]+\.[0-9]*|[0-9]*)$
此:
答案 3 :(得分:0)
谢谢你们,
我证明了你的所有建议,但它根本没有解决我的问题, 还是允许进入空场,我也许不能解释得很好, 我希望我的正则表达式不允许注册空字段。