如何验证数字输入,最大长度限制为3,并且不应以零个字符开头(010、001应该无效)。我将C#regex.IsMatch()
与以下正则表达式([1-9]|[1-9][0-9]|[1-9][0-9][0-9])*
一起使用。但是它会验证输入从零开始。该如何解决呢?。
答案 0 :(得分:4)
您可以通过重复字符类0到2次来忽略替换,并且应该使用锚点来声明字符串的开头^
和结尾$
。
^[1-9][0-9]{0,2}$
^
字符串的开头[1-9]
匹配数字1-9 [0-9]{0,2}
匹配数字0-9的0、1或2次$
声明字符串的结尾用法:
bool isMatch = Regex.IsMatch("100", @"^[1-9][0-9]{0,2}$");
答案 1 :(得分:1)
正则表达式非常确定。请注意,您无需任何正则表达式即可轻松实现此目标:
static bool IsValid(string input)
{
return !string.IsNullOrEmpty(input)
&& input.Length < 3 && !input.StartsWith("0") && input.All(char.IsDigit);
}
答案 2 :(得分:1)
我会更具体一点:
^((?!(0))[0-9]{0,3})$
说明:
答案 3 :(得分:1)
您可以使用^[1-9][0-9]{0,2}$
,它不允许以零开头
答案 4 :(得分:1)
[1-9][0-9]{2}$
这将根据您的要求工作。正则表达式好友的睾丸,并附有以下测试案例