Regex排除(HEX值)7F到FF中的ASCII字符



我正在尝试Regex进行密码验证,我有以下要求:

  • 密码应至少包含1个大写字符
  • 密码应至少包含1个较低的字符
  • 密码应至少包含1个数字
  • 密码应至少包含1个特殊字符
  • 密码中的所有字符应在20到7E(ASCII HEX值(的范围内,这意味着不包括变音符号和其他符号

到目前为止,我已经想出了这个REGEX:

^(?=[x20-x7E])(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[^a-zA-Z0-9]).*(?<=.[x20-x7E])$

当我测试它时,它会失败2/3,我不能让它在最后一个失败——当一些不在范围内的字符位于密码中间时。对于第一个和最后一个是可以的。看看测试正则表达式img。有没有想过如何让它发挥作用?

您可以使用

^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=[^0-9]*[0-9])(?=[a-zA-Z0-9]*[^a-zA-Z0-9])[x20-x7E]+$

详细信息

  • ^-字符串的开头
  • (?=[^A-Z]*[A-Z])-至少一个大写ASCII字母
  • (?=[^a-z]*[a-z])-至少一个小写ASCII字母
  • (?=[^0-9]*[0-9])-至少一个ASCII数字
  • (?=[a-zA-Z0-9]*[^a-zA-Z0-9])-至少一个ASCII字母数字字符以外的字符
  • [x20-x7E]+-x20x7E范围内的一个或多个字符
  • $—字符串结束

相关内容

  • 没有找到相关文章

最新更新