C# 不能从零开始的正则表达式范围
我正在尝试编写一个正则表达式,其中只允许1到99之间的值 有效值:C# 不能从零开始的正则表达式范围,c#,asp.net,.net,regex,asp.net-mvc,C#,Asp.net,.net,Regex,Asp.net Mvc,我正在尝试编写一个正则表达式,其中只允许1到99之间的值 有效值: 1 01 2 02 3 03 ... 19 20 21 ... 98 99 其他所有内容都必须抛出一个错误,如: 00 0 -1 1.0 1. 100 我目前有: ^[1-9]([0-9]+$) 这是行不通的。它只接受10及以上的值。这应该可以: ^(0[1-9]|[1-9][0-9]?)$ 这应该是:^([0-9][1-9])|([1-9][0-9])|[1-9])$^(0?[1-9][0-9])$ 第一部分包括1到9
1
01
2
02
3
03
...
19
20
21
...
98
99
其他所有内容都必须抛出一个错误,如:
00
0
-1
1.0
1.
100
我目前有:
^[1-9]([0-9]+$)
这是行不通的。它只接受10及以上的值。这应该可以:
^(0[1-9]|[1-9][0-9]?)$
这应该是:^([0-9][1-9])|([1-9][0-9])|[1-9])$
^(0?[1-9][0-9])$
第一部分包括1到9和0x
第二部分适用于10到99之间的所有内容,请尝试以下正则表达式:
^([1-9]|[1-9][0-9]|0[1-9])$/mg
这里演示
它使用|
运算符,该运算符相当于或
基本上这个正则表达式是这样说的:
数字在1和9之间吗
或
是介于1和9之间的第一个数字,第二个数字介于0之间
还有9个
或
数字是否以0开头,以1到9之间的数字结尾
末尾的标志只需检查演示的每一行,您可能需要更改或删除它们
编辑:无论什么原因,我都没有看到库巴的答案。他实际上更干净,但工作方式与此大致相同,如果您需要解释的话。/^(0?[1-9]|[1-9][0-9])$/gm
.是否需要一个简单的
.0
和是的,它可以工作,但我正忙于表单验证和将验证绑定到表单。我正在使用一个RegularExpression
属性。使用.NET
中已经提供的验证控件更方便。是的,我现在正在思考抱歉,我会编辑它。你不能“思考”,所以:)我也有这样的想法。它不适用于01
。