首页 >Java >java教程 >如何改进 Java 密码验证正则表达式以拒绝空格?

如何改进 Java 密码验证正则表达式以拒绝空格?

Barbara Streisand
Barbara Streisand原创
2024-12-11 00:19:11628浏览

How Can I Improve My Java Password Validation Regex to Reject Whitespace?

Java 中密码验证的正则表达式

要在 Java 应用程序中验证密码,可以将自定义正则表达式 (regexp) 定义为一个配置参数。

问题:

正则表达式:

^.*(?=.{8,})(?=..*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$

强制执行密码规则,例如最小长度、数字的存在、小写和大写字母和特殊字符。但是,它不支持识别不含空格、制表符或回车符的密码。

解决方案:

要解决此问题,请将以下内容附加到现有正则表达式:

(?=\S+$)

最终常规表达式:

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\S+$).{8,}$

解释:

  • ^ 和 $ 是匹配字符串开头和结尾的锚点,确保整个密码已验证。
  • (?=.*[0-9]) 断言至少存在一个数字。
  • (?=.*[a-z]) 断言至少存在一个小写字母。
  • (?=.*[A-Z]) 断言至少存在一个大写字母letter.
  • (?=.*[@#$%^& =]) 断言至少存在一个特殊字符 (@#%$^等)。
  • (?=S $) 断言不存在空格、制表符、回车符或任何空白字符。
  • .({8,}$ 匹配任何字符 (. ) 至少出现八次,确保密码满足最小长度要求。

以上是如何改进 Java 密码验证正则表达式以拒绝空格?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn