公司网站费用怎么做会计分录,如何用照片做模板下载网站,网站建设仟首先金手指13,网站服务器租用 价格1. 需求
对用户密码的强度进行校验#xff0c;要求用户密码达到一定的强度#xff0c;符合安全性要求。
1.1. 基础版需求
密码必须由字母和数字组成#xff08;同时包括数字和数字#xff09;#xff1b;密码长度大于等于8个字符。
1.2. 进阶版需求
密码由这四种元素…1. 需求
对用户密码的强度进行校验要求用户密码达到一定的强度符合安全性要求。
1.1. 基础版需求
密码必须由字母和数字组成同时包括数字和数字密码长度大于等于8个字符。
1.2. 进阶版需求
密码由这四种元素组成数字、大写字母、小写字母、特殊字符且必须包含全部四种元素密码长度大于等于8个字符。
2. 基础版解析
需求密码必须由字母和数字组成同时包括数字和数字密码长度大于等于8个字符。
2.1. 原理
使用正则表达式校验字符串。
正则表达式构建思路负向预查模式
字符为数字或字母不能全是数字不能全是字母字符数量大于等于8.
2.2. 核心代码
package org.example;import java.util.regex.Pattern;/*** 密码校验器。*/
public class PasswordValidator {/*** 密码由数字和下划线组成且大于等于8个字符。*/public static boolean isCharacterAndNumber(String password) {String pattern ^(?![0-9]$)(?![a-zA-Z]$)[0-9A-Za-z]{8,}$;return Pattern.matches(pattern, password);}}
2.3. 正则表达式含义解析
含义正则表达式字符串开头^字符为数字或字母[0-9A-Za-z]不全是数字(?![0-9]$)不全是字母(?![a-zA-Z]$)字符数量大于等于8{8,}字符串结尾$
2.4. 测试用例
2.4.1. 示例代码
package org.example;public class TestBase {public static void main(String[] args) {isValid();isValid(中文);isValid(abc-1234567);isValid(1234567);isValid(abc);isValid(zzz111);isValid(zzz12345);isValid(abc1234567);isValid(abc12345bbb);}private static void isValid(String text) {System.out.println(text PasswordValidator.isCharacterAndNumber(text));}}
2.4.2. 运行结果 3. 进阶版解析
需求密码由四种元素组成数字、大写字母、小写字母、特殊字符且必须包含全部四种元素密码长度大于等于8个字符。
3.1. 原理
使用正则表达式校验字符串。
正则表达式构建思路负向预查模式
密码只包含数字、大写字母、小写字母和特殊字符不全是 数字或大写字母或小写字母不全是 数字或大写字母或特殊字符不全是 数字或小写字母或特殊字符不全是 大写字母或小写字母或特殊字符字符数量大于等于8.
3.2. 核心代码 import java.util.regex.Pattern;/*** 密码校验器。*/
public class PasswordValidator {/*** 密码由四种元素组成数字、大写字母、小写字母、特殊字符且必须包含全部四种元素密码长度大于等于8个字符。*/public static boolean isValid(String password) {// 正则表达式的内容如下:// ^(?![0-9A-Za-z]$)(?![0-9A-Z\W]$)(?![0-9a-z\W]$)(?![A-Za-z\W]$)[0-9A-Za-z~!#$%^*()__\-{}|[\]\\:;?,./]{8,}$// 在 Java 中使用需要转义转义后的结果如下。String pattern ^(?![0-9A-Za-z]$)(?![0-9A-Z\\W]$)(?![0-9a-z\\W]$)(?![A-Za-z\\W]$)[0-9A-Za-z~!#$%^*()_\\-{}|\\[\\]\\\\:\;?,./]{8,}$;return Pattern.matches(pattern, password);}}
3.3. 正则表达式含义解析
含义正则表达式字符串开头^密码只包含数字、大写字母、小写字母和特殊字符[0-9A-Za-z~!#$%^*()_-{}|[]\:;?,./]不全是 数字或大写字母或小写字母(?![0-9A-Za-z]$)不全是 数字或大写字母或特殊字符(?![0-9A-Z\W]$)不全是 数字或小写字母或特殊字符(?![0-9a-z\W]$)不全是 大写字母或小写字母或特殊字符(?![A-Za-z\W]$)字符数量大于等于8{8,}字符串结尾$
3.4. 测试用例
3.4.1. 示例代码
public class TestComplex {public static void main(String[] args) {isValid();isValid(中文);isValid(123456789);isValid(aaabbbccc);isValid(AAABBBCCCabc);isValid(AAAbbb123);isValid(abcABC1中文);isValid(aB1);isValid(abcABC1);isValid(aaaBBB111);isValid(aaabbbBBB111~!#$%^*()_-{}|[]\\:\;?,./);}private static void isValid(String text) {System.out.println(text PasswordValidator.isValid(text));}}
3.4.2. 运行结果 4. Gitee示例项目idea
密码校验器Demo
5. 参考
java正则校验密码必须由字母和数字组成
几种常见的密码校验正则表达式