首页 文章

正则表达式模式小写和大写以及数字或特殊字符

提问于
浏览
-1

目前我有以下正则表达式模式:

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

它至少是一个小写,一个大写,一个数字和一个特殊字符 . 如何制作特殊字符 optional

2 回答

  • 1

    如何使特殊字符可选?

    只需删除lookahead以检查特殊字符:

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

    在你的正则表达式中使用结束锚 $ 也更安全 .

  • 0

    看起来你需要的是 ? [$@$!%*?&]

    你的正则表达式应该是 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&]?)[A-Za-z\d$@$!%*?&]{8,}

    https://regex101.com/r/1V8Xsq/1

相关问题