正十进制的正则表达式或长度最多为7个字符的整数字符串

时间:2013-06-24 12:17:55

标签: regex

我正在尝试为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

有人可以就此提出建议。我有一些尝试,我正在努力的主要组件是检查只有一个小数点。谢谢

2 个答案:

答案 0 :(得分:2)

以下正则表达式适合您:

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

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

答案 1 :(得分:0)

这是另一种方式,没有后视:

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

查看live demo on rubular