I am writing a C# web application and verify data in a textbox using this regular expression that only accepts positive decimal values between 0 and 1:
我正在编写一个c# web应用程序,并使用这个只接受0到1之间的正数十进制值的正则表达式在文本框中验证数据:
^(0(\.\d+)?|1(\.0+)?)$
I would to adapt like the regex to restrict entries to 4 decimal places of precision.
我将像regex一样调整,将条目限制为4位精度。
Allowed
允许
0
0.1
0.12
0.123
0.1234
1
Not allowed
不允许
-0.1
-1
1.1
2
I have found the following regex that only allows up to 4 decimal places, but I am unsure on how to combine the two.
我发现下面的regex只允许小数点后四位,但我不确定如何将两者结合。
^(?!0\d|$)\d*(\.\d{1,4})?$
Any help is greatly appreciated, thanks.
非常感谢您的帮助,谢谢。
1 个解决方案
#1
2
You need to set replace the +
quantifier with the limiting {1,4}
:
需要将+量词设置为限值{1,4}:
^(0(\.[0-9]{1,4})?|1(\.0{1,4})?)$
^^^^^ ^^^^^
See the regex demo
看到regex演示
Details:
细节:
-
^
- start of string - ^ -字符串的开始
-
(
- Outer group start-
0
- a zero - 0 - 0
-
(\.[0-9]{1,4})?
- an optional sequence of a.
followed with 1 to 4 digits - (\[0 - 9]{ 1 4 })?-可选的a序列。接着是1到4个数字。
-
|
- or - |——或者
-
1
- a1
- 1 - 1
-
(\.0{1,4})?)
- an optional sequence of.
followed with 1 to 4 zeros - (\.0{1,4})?然后是1到4个零。
-
- (-外层组开始0- a 0 (\.[0-9]{1,4})?-可选的a序列。后面跟着1到4位| -或1 - a 1(\.0{1,4}) -一个可选的序列。然后是1到4个零。
-
$
- end of string. - $ -字符串的末端。
#1
2
You need to set replace the +
quantifier with the limiting {1,4}
:
需要将+量词设置为限值{1,4}:
^(0(\.[0-9]{1,4})?|1(\.0{1,4})?)$
^^^^^ ^^^^^
See the regex demo
看到regex演示
Details:
细节:
-
^
- start of string - ^ -字符串的开始
-
(
- Outer group start-
0
- a zero - 0 - 0
-
(\.[0-9]{1,4})?
- an optional sequence of a.
followed with 1 to 4 digits - (\[0 - 9]{ 1 4 })?-可选的a序列。接着是1到4个数字。
-
|
- or - |——或者
-
1
- a1
- 1 - 1
-
(\.0{1,4})?)
- an optional sequence of.
followed with 1 to 4 zeros - (\.0{1,4})?然后是1到4个零。
-
- (-外层组开始0- a 0 (\.[0-9]{1,4})?-可选的a序列。后面跟着1到4位| -或1 - a 1(\.0{1,4}) -一个可选的序列。然后是1到4个零。
-
$
- end of string. - $ -字符串的末端。