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

正则表达式不支持小写、大写、数字和最少8个字符

  •  0
  • MyDaftQuestions  · 技术社区  · 6 年前

    我找了很多关于regex的信息。这是一个非常好的记录,但我显然是一个白痴,或者已经研究这个问题太久了!

    我需要匹配的模式是任意数量的大写、小写和数字,至少有8个字符。我不想接受其他任何东西,比如非字母数字字符(*^&等)

    我的努力是

    ^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])\S{8,}$
    

    可悲的是,当我使用 https://regex101.com/ 这与以下任何一项都不匹配

    aaaaaaaa
    AAAAAAAA
    00000000
    asdfFDSA167
    #fFaf9374A
    12345678
    123456NBh
    

    其中两个是有效的,但我不明白为什么我会有问题

    最终目标是在 pattern 属性 input (HTML 5输入模式=”“/>`)

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jonathan Gray    6 年前

    我相信这就是你想要的: ^[a-zA-Z0-9]{8,}$

    或者可能是这样: ^[a-z]{8,}|[A-Z]{8,}|[0-9]{8,}$

    第一个将匹配字母/数字的任意组合,第二个将只匹配相似字符的序列。考虑到这个问题,很难说清楚你在找什么。

    编辑: 我犯了一个错误,但已经改正了

        2
  •  0
  •   Mohammed Elhag    6 年前

    试试这个:

    ^(?=.*[A-Z])(?=.*[a-z])(?=.*[\d])([A-Za-z\d]{8,})$
    

    DEMO