【发布时间】:2016-02-01 11:27:50
【问题描述】:
我在网上搜索并想出了:
/(^100(\.0{1,2})?$)|(^([1-9]([0-9])?|0)(\.[0-9]{1,2})?$)/
问题是它接受 0。
【问题讨论】:
-
这就是它的作用 -
|0- 和(\.[0-9]{1,2})?是可选的。 -
我认为 |0 对 0.3 很重要,例如
-
然后,您需要为
0.01创建一个单独的分支。试试^(?:100(?:\.0{1,2})?|[1-9]\d?(?:\.\d{1,2})?|0\.(?!0+$)\d{1,2})$。我认为你真的可以将字符串转换为数字,然后使用常规的比较方法。 -
您为这项工作使用了错误的工具。考虑使用正则表达式捕获值,但在 javascript 中检查边界。即使您能够使用正则表达式来实现这一特技,代码也会非常晦涩难懂且难以维护。
标签: javascript angularjs regex