为了账号安全,请及时绑定邮箱和手机立即绑定

密码验证的正则表达式第一个和最后一个字母不能有符号

密码验证的正则表达式第一个和最后一个字母不能有符号

天涯尽头无女友 2021-06-28 13:58:31
我需要一个用于密码验证的正则表达式。验证规则-密码区分大小写长度不得超过 50 个字符必须至少包含 1 个数字必须至少有 1 个符号(非字母或数字)字符第一个字符不能是符号(非字母或数字)最后一个字符不能是符号(非字母或数字)不得连续重复任何字符超过 2 次必须至少有 1 个小写字母必须至少有 1 个大写字母长度必须至少为 8 个字符到目前为止,我有这个 - "^(?!.*(.)\\1{2})(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^A-Za-z0-9]).          {8,50}$"它不适用于第一个和最后一个字符不能是符号。我试过了^[a-zA-Z0-9](?!.*(.)\1{2})(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{6,48}[a-zA-Z0-9]$但它不起作用。请帮帮我。
查看完整描述

2 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

每个限制都可以向前看:

^(?=.*\d).{8,50}
  • (无关)密码区分大小写

  • .{8,50} 长度不得超过 50 个字符且长度必须至少为 8 个字符

  • (?=.*\d) 必须至少包含 1 个数字

  • (?=.*(\W|_)) 必须至少有 1 个符号(非字母或数字)字符

  • [^\W_] 第一个字符不能是符号(非字母或数字)

  • [^\W_] 最后一个字符不能是符号(非字母或数字)

  • (?!.*(.)\1) 不得连续重复任何字符超过 2 次

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

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

把它们放在一起:

^(?!.*(.)\1)(?=.*\d)(?=.*(\W|_))(?=.*[a-z])(?=.*[A-Z])[^\W_].{6,48}[^\W_]$

现场演示


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 286 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信