为了账号安全,请及时绑定邮箱和手机立即绑定

使用 C# RegularExpressions 验证用户输入

使用 C# RegularExpressions 验证用户输入

C#
缥缈止盈 2022-11-21 22:15:32

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



查看完整描述

4 回答

?
慕莱坞森

TA贡献1545条经验 获得超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}$");

正则表达式演示


查看完整回答
反对 回复 2022-11-21
?
qq_花开花谢_0

TA贡献1548条经验 获得超5个赞

正则表达式非常确定。请注意,您可以在没有任何正则表达式的情况下轻松实现此目的:


static bool IsValid(string input)

{

    return !string.IsNullOrEmpty(input)

        && input.Length < 3 && !input.StartsWith("0") && input.All(char.IsDigit); 

}


查看完整回答
反对 回复 2022-11-21
?
阿波罗的战车

TA贡献1572条经验 获得超6个赞

我会更具体一点:

^((?!(0))[0-9]{0,3})$

说明:

  • 第一个不是 0 & 我想要 0 到 9 之间的最多 3 位数字。


查看完整回答
反对 回复 2022-11-21
?
POPMUISE

TA贡献1483条经验 获得超5个赞

[1-9][0-9]{2}$

这将根据您的要求工作。使用以下测试用例对正则表达式好友进行测试

  1. 001 失败

  2. 1000000 失败

  3. 900 关卡

  4. 010 失败


查看完整回答
反对 回复 2022-11-21
  • 4 回答
  • 0 关注
  • 7 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信