正则表达式允许最多3个字符的小数或最多2个字符的整数

时间:2013-08-27 06:11:34

标签: regex validation

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

  • 不能为负和零。

  • 包括可选小数点在内的最大字符串长度为3个字符,如果只输入整数,则为2个字符

  • 最大小数位数为1

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

0.1,
0.9,
9.0,
9.1,
2,
34

这些都很糟糕.....

 0,
-0,
-1,
-0.1,
.1,
.34,
 9.01,
 9.12,
345
你能帮我解决一下吗?我查看过如此多的正则表达式样本,但无法构建符合上述条件的正确样本。

2 个答案:

答案 0 :(得分:1)

使用以下正则表达式:

^(\d{1,2}\.?|\d\.\d)$

第一种选择允许带有可选小数点的2位整数,第二种允许数字后跟1位小数。

如果它通过了此验证,则对其进行测试:

[^0]

确保它不为零。

答案 1 :(得分:0)

我已经尝试并提出了以下正则表达式...它满足了问题中提到的所有好的值和坏的值。

^(([1-9])|([0-9][1-9])|([1-9][0-9])|([0-9][.][1-9])|([1-9][.][0-9]))$

我对正则表达式知之甚少,看一下上面写的正则表达式的样本工作正常。请告诉我您对此的反馈,是否可以通过这种方式编写上述正则表达式,并且是否存在任何性能问题以及其他任何问题。