如何为正则表达式设置限制?(最小和最大长度)

  • 本文关键字:正则表达式 设置 regex
  • 更新时间 :
  • 英文 :


我是正则表达式的新手,想要验证一个包含用户密码的字符串,该字符串应包含小写、大写、数字和特殊字符,并且长度必须为 8 个字符,最多为 20 个字符,所以我如何将此正则表达式限制在 8 到 20 个字符之间,这里是正则表达式:

^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*(_|[^w])).+$

在正则表达式的末尾,您有三个符号.+$

这意味着:

  • 任何字符 ( . (
  • 一个或多个 ( + (
  • 字符串结尾 ( $ (。

您希望以一个或多个(+(为目标,并使用{from, to}语法将其更改为限制。

因此,对于 8-20 个字符,请使用 {8, 20} 而不是 +

^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*(_|[^w])).{8,20}$

请注意,这不是限制密码长度的好做法。密码应始终经过哈希处理,并在数据库中具有固定长度。

该正则表达式末尾的 .+ 表示您希望这些字符"至少一次">

将其更改为 。{8, 20} 为了限制字符数在 8 和 20 之间

最新更新