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

正则表达式匹配000001到002000

  •  -4
  • fgalan  · 技术社区  · 6 年前

    000001

    我正在寻找一个正则表达式来捕获2000个元素,从000001到002000。也许这个问题太天真了,但经过一番尝试,我没有找到正确的答案。。。

    有人能帮忙吗?谢谢!

    这个问题已被认为是可能的 this

    2 回复  |  直到 6 年前
        1
  •  1
  •   Denys Séguret    6 年前

    ^0*(2000|1?[0-9]{3})$
    

    根据您的评论,您还想排除“000000”。然后使用

    ^(?!000000)0*(2000|1?[0-9]{3})$
    

    ["000000", "000001", "999999", "001541", "000015", "002000"].forEach(s=> console.log(s, /^(?!000000)0*(2000|1?[0-9]{3})$/.test(s)))

    但现实世界中大多数理智的解决方案只是解析数字并将其与一个范围进行比较。这样就不容易出错,而且更容易检查和维护。

        2
  •  0
  •   CrafterKolyan    6 年前

    检查此项: ^00([01]\d{3}|2000)$

    小心,它也匹配000000,但正如您所说的,没有这样的字符串,所以一切正常。