【发布时间】:2013-02-06 02:38:34
【问题描述】:
如何创建带小数点分隔符的数字正则表达式,但也限制长度
我创建了这个:
^[0-9]([0-9]*[.]?[0-9]){1,10}$
那么 1234567890.1234567890 是有效的,但是使用了 20 个(+1 -> 小数分隔符)字符。
如何限制 10 个字符?
有效:
1234567890
123456789.0
12345678.90
1234567.890
123456.7890
12345.67890
12345.67890
1234.567890
123.4567890
12.34567890
1.234567890
无效:
12345678901
12345678901.
123456789.01
12345678.901
1234567.8901
123456.78901
12345.678901
12345.678901
1234.5678901
123.45678901
12.345678901
1.2345678901
.12345678901
提前致谢
【问题讨论】:
-
老实说,我只是检查它是否匹配
/^\d+(?:\.\d*)$/然后s/\.//;并检查长度。 -
.123或123.应该是有效匹配吗?另外,我猜指数符号是不允许的? -
@LoneShepherd 最好的选择是你说的,但是是动态形式,我也需要控制长度。
-
@TimPietzcker 在我的情况下不能是 .123 或 123。有效。
-
好吧,那么我的解决方案应该可以正常工作:)