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

如何在正则表达式中检测精确长度

  •  14
  • CheGueVerra  · 技术社区  · 17 年前

    我有两个正则表达式来验证输入的值。

    允许任意长度的字母数字值:

    @"^\s*(?<ALPHA>[A-Z0-9]+)\s*"
    

    另一个只允许数值:

    @"^\s*(?<NUM>[0-9]{10})"
    

    NUM 正则表达式。

    8 回复  |  直到 17 年前
        1
  •  20
  •   Gilles 'SO- stop being evil'    14 年前

    我想你想说的是,你不想允许超过10位数字。所以,只需添加一个 $

    例子: @"^\s*(?[0-9]{10})$"


    这是我最初的答案,但我觉得我读得太准确了。

    string myRegexString = `@"(?!(^\d{11}$)` ... your regex here ... )";
    

        2
  •  5
  •   JP Alioto    17 年前

    ^\s*([0-9]{10})\z
    

        3
  •  2
  •   Alan Moore Chris Ballance    17 年前

    多达 10位数?试试这个:

    @"^\s*[0-9]{1,10}\s*$"
    
        4
  •  1
  •   Bryan    17 年前

    如果你只想匹配10位数长的数字,只需使用$添加一个尾随锚点,如下所示:

    ^\s*(?:[0-9]{10})\s*$
    

    这将匹配任何长度恰好为10位的数字(两侧都有可选空格)。

        5
  •  1
  •   DAVIS BENNY 15MIS0426    8 年前

    var pattern =/\b[0-9]{10}$\b/;
    
    // the b modifier is used for boundary and $ is used for exact length
        6
  •  0
  •   Michael Kohne    17 年前

        7
  •  0
  •   Imran    17 年前

    ^\s*(?:\d{10})\s*$
    

    ^\s*(\d{10})\s*$
    
        8
  •  0
  •   Pranav 웃 n1kkou    12 年前

    ^\s*(?\d{1,10}|\d{12,})