正则表达式十进制值介于0和1之间,最多4位小数

时间:2017-01-10 18:35:03

标签: regex

我正在编写一个C#Web应用程序,并使用这个只接受介于0和1之间的正十进制值的正则表达式验证文本框中的数据:

^(0(\.\d+)?|1(\.0+)?)$

我会像正则表达式那样适应将条目限制为4位小数的精度。

允许

0
0.1
0.12
0.123
0.1234
1

不允许

-0.1
-1
1.1
2

我发现以下正则表达式只允许最多4位小数,但我不确定如何将两者结合起来。

^(?!0\d|$)\d*(\.\d{1,4})?$

非常感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

您需要将+量词替换为限制{1,4}

^(0(\.[0-9]{1,4})?|1(\.0{1,4})?)$
           ^^^^^        ^^^^^ 

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • ( - 外线组开始
    • 0 - 零
    • (\.[0-9]{1,4})? - .的可选序列,后跟1到4位数字
    • | - 或
    • 1 - 1
    • (\.0{1,4})?) - .的可选序列,后跟1到4个零
  • $ - 字符串结束。

答案 1 :(得分:0)

这可用作验证功能,该功能允许按常规扩展(RegExp)允许四位数的小数位。

HTTP 500