猿问

使用 C# RegularExpressions 验证用户输入

如何验证数字输入,最大长度限制为 3,并且不应以零字符开头(010、001 应无效)。我使用 C#regex.IsMatch()和以下 regex ([1-9]|[1-9][0-9]|[1-9][0-9][0-9])*。但它验证输入是从零开始的。如何解决这个..?



缥缈止盈
浏览 91回答 4
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}$");正则表达式演示

qq_花开花谢_0

正则表达式非常确定。请注意,您可以在没有任何正则表达式的情况下轻松实现此目的:static bool IsValid(string input){&nbsp; &nbsp; return !string.IsNullOrEmpty(input)&nbsp; &nbsp; &nbsp; &nbsp; && input.Length < 3 && !input.StartsWith("0") && input.All(char.IsDigit);&nbsp;}

阿波罗的战车

我会更具体一点:^((?!(0))[0-9]{0,3})$说明:第一个不是 0 & 我想要 0 到 9 之间的最多 3 位数字。

POPMUISE

[1-9][0-9]{2}$这将根据您的要求工作。使用以下测试用例对正则表达式好友进行测试001 失败1000000 失败900 关卡010 失败
随时随地看视频慕课网APP
我要回答