我有这个javascript正则表达式(小数点后3位点)
^\d+(\.\d{1,3})?$
我想也匹配一个我认为是
的空字符串""
^$
如何将这些组合成1个正则表达式
这些应该是通过测试
"" //empty string
1
1.
1.0
1.00
1.000
123456789
0
.0
.00
.000
我希望我已经覆盖了所有这些。
答案 0 :(得分:3)
不包括空格,您当前的表达似乎没有超出您的要求。
^\d*\.?\d{0,3}$
可选的前导数字,可选点,结尾前最多三位数。
编辑: @Guffa注意到我的原始解决方案也只是匹配一个点,“。”
^\d*((\d\.)|(\.\d))?\d{0,3}$
此版本替换\.?
支票,检查数字后跟点,或点后跟数字,或两者都没有。
答案 1 :(得分:2)
用三种不同的情况表达:
这将通过所有测试,字符串"."
也不会通过:
^(\d*|\d+\.\d{0,3}|\d*\.\d{1,3})$
答案 2 :(得分:1)
数字期间案例很难,我的原始答案错过了。这个答案比其他答案简单,涵盖所有案例,并且没有任何错误的匹配。
<强>表达式强>
^((\d+\.?|\.(?=\d))?\d{0,3})$
答案 3 :(得分:1)
我宁愿选择===“”或你的正则表达式比较,只是出于表现的目的