今天,几乎所有的应用程序都需要密码验证。有各种验证密码的方法,从手动编写到使用第三方可用API。在本Java正则表达式密码验证教程中,我们使用正则表达式构建密码验证器。1. 密码验证的正则表达式((?=.*[a-z])(?=.d)(?=.[
今天,几乎所有的应用程序都需要密码验证。有各种验证密码的方法,从手动编写到使用第三方可用API。在本Java正则表达式密码验证教程中,我们使用正则表达式构建密码验证器。
((?=.*[a-z])(?=.d)(?=.[@#$%])(?=.*[A-Z]).{6,16})
上述正则表达式有以下部分:
(?=.*[a-z]) : 这匹配至少一个小写字母的存在。(?=.*d) : 这匹配至少一个数字(0-9)的存在。(?=.*[@#$%]) : 这匹配至少一个特殊字符的存在。((?=.*[A-Z]) : 这匹配至少一个大写字母的存在。{6,16} : 这将密码的长度限制在最小6个字母到最大16个字母之间。
前4个部分的顺序可以更改,甚至可以从最终的正则表达式中删除。这个事实可以用于以编程方式构建我们的密码验证器。
我们正在使我们的验证器可配置,以便根据需要设置限制。例如,如果我们要强制至少一个特殊字符,但不要任何大写字母,我们可以相应地传递所需的参数。
import java.util.regex.Matcher;import java.util.regex.Pattern; publicclassPasswordValidator{ privatestatic PasswordValidator INSTANCE = new PasswordValidator(); privatestatic String pattern = null; /** * No one can make a direct instance * */privatePasswordValidator(){ //do nothing } /** * Force the user to build a validator using this way only * */publicstatic PasswordValidator buildValidator( boolean forceSpecialChar, boolean forceCapitalLetter, boolean forceNumber, int minLength, int maxLength){ StringBuilder patternBuilder = new StringBuilder("((?=.*[a-z])"); if (forceSpecialChar) { patternBuilder.append("(?=.*[@#$%])"); } if (forceCapitalLetter) { patternBuilder.append("(?=.*[A-Z])"); } if (forceNumber) { patternBuilder.append("(?=.*d)"); } patternBuilder.append(".{" + minLength + "," + maxLength + "})"); pattern = patternBuilder.toString(); return INSTANCE; } /** * Here we will validate the password * */publicstaticbooleanvalidatePassword(final String password){ Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(password); return m.matches(); }}
在本文中,我们学习了使用Java正则表达式的密码验证,它能够验证字母数字和特殊字符,包括最大和最小密码长度。
以上就是小编给大家带来的关于'java正则校验日期格式,日期格式的正则表达式'的探讨分享,希望大家通过阅读小编的文章之后能够有所收获!如果大家觉得小编的文章不错的话,可以多多分享给有需要的人。