首页 文章

以字母开头的正则表达式包含一个大写/一个小写字母,一个数字,没有特殊字符和最少8个字符

提问于
浏览
3

我想写一个正则表达式:

  • 以字母开头

  • 包含一个大写和一个小写字母

  • 包含一个数字

  • 不允许使用特殊字符

  • 至少8个字符

到目前为止,我有大写/小写条件,使用以下正则表达式设置的数字和最小字符要求:

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

我对解决 starts with a letterdoes not allow special characters 要求的最佳猜测如下 . 这个正则表达式似乎评估了 false 的所有输入:

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

1 回答

  • 3

    您需要在 ^ 之后放置前瞻,并将 [a-zA-Z] 放在它们之后,并使用 {7,} 量化其余部分:

    ^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])[a-zA-Z][a-zA-Z0-9]{7,}$
    

    regex demo .

    Pattern details

    • ^ - 字符串的开头

    • (?=.*?[a-z]) - 至少1个小写ASCII字母

    • (?=.*?[A-Z]) - 至少1个大写ASCII字母

    • (?=.*?[0-9]) - 至少1个ASCII数字

    • [a-zA-Z] - ASCII字母

    • [a-zA-Z0-9]{7,} - 7个或更多ASCII字母或数字( \w 也允许 _

    • $ - 字符串结束 .

相关问题