[英]Validate user input using C# RegularExpressions
如何验证数字输入,最大长度限制为3,并且不应以零个字符开头(010、001应该无效)。 我将C# regex.IsMatch()
与以下正则表达式([1-9]|[1-9][0-9]|[1-9][0-9][0-9])*
。 但是它会验证输入从零开始。 如何解决这个..?
您可以通过重复字符类0-2次来省略替换,并且应该使用锚点来声明字符串的开始^
和结束$
。
^[1-9][0-9]{0,2}$
^
字符串开头 [1-9]
匹配数字1-9 [0-9]{0,2}
将数字0、1或2匹配0-9 $
字符串结尾 用法:
bool isMatch = Regex.IsMatch("100", @"^[1-9][0-9]{0,2}$");
正则表达式非常确定。 请注意,无需任何正则表达式即可轻松实现此目的:
static bool IsValid(string input)
{
return !string.IsNullOrEmpty(input)
&& input.Length < 3 && !input.StartsWith("0") && input.All(char.IsDigit);
}
我会更具体一点:
^((?!(0))[0-9]{0,3})$
说明:
[1-9][0-9]{2}$
这将根据您的要求工作。 正则表达式好友的睾丸,以下测试案例
您可以使用^[1-9][0-9]{0,2}$
,不允许以零开头
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.