2

我正在尝试为 RegularExpressionValidator 控件编写一个正则表达式,该控件将允许具有以下条件的小数或整数:

  • 不能为负
  • 没有前导零或尾随零
  • 包括可选小数点在内的最大字符串长度为 7 个字符
  • 最大小数位数为 2

允许一个单独的零

所以这些都很好......

0
0.1
0.12
1.34
12.45
123.67
1234.67
12345.7

这些很糟糕......

-0
-0.1
012.4
123.560
123...7

有人可以就此提出建议吗?我已经进行了几次尝试,而我正在努力解决的主要问题是只检查一位小数点。谢谢你

4

2 回答 2

2

以下正则表达式应该适合您:

(?!^0[1-9])(?=^([0-9])+(\.\d{1,2}(?<!0))?$)^.{1,7}$

现场演示:http ://www.rubular.com/r/Y3wVkKST1I

于 2013-06-24T12:30:12.653 回答
0

这是另一种方法,无需后视:

^(?=.{1,7}$)(0(?=\.|$)|[1-9])\d*(\.\d?[1-9])?$

在 rubular 上查看现场演示

于 2013-06-24T12:53:39.477 回答