代码之家  ›  专栏  ›  技术社区  ›  flavour404

c#正则表达式,只允许1到n之间的数字

c#
  •  0
  • flavour404  · 技术社区  · 15 年前

    我承认我对正则表达式一无所知。我要做的是使用一个变量作为正则表达式的一部分。我希望对每个字符输入都进行验证,它是这样做的,并且只允许字符在1和n之间,n可以是1到999之间的任何数字,我该怎么做?1、2、3、15、23、500均有效,003、0、3t3均无效。

    3 回复  |  直到 15 年前
        1
  •  3
  •   Doug    15 年前

    这应该做到: ^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$

    诀窍是把问题看作一系列的数字,一次计算一个,而不是一个整数。

        2
  •  4
  •   Robert Hui    15 年前

    我建议如下,这与@Doug的答案类似:

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

    ^[1-9][0-9]{0,3}$
    
        3
  •  0
  •   Adrian Regan    15 年前

    你确定正则表达式是最好的解决方案吗?

    可以使用int.TryParse(string,out value)

    如果成功,则确保结果int在范围内。。。