‘壹’ java 验证密码的正则表达式,要求同时有数字和字母,长度最小6,最大16,无限感激啊!
你好
String reg = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$";
这个正则表达式符合你的要求,
希望对你有帮助
‘贰’ java密码正则表达式(可以是纯数字,也可以是纯字母,也可以是数字+字母,6-16 位)
正则表达式是一种描述字符串集合的方法,它是以字符串集中各字符串的共有特征为依据的。正则表达式可以用于探索、编辑或者操作文本和数据。它超出了Java程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则表达式。正则表达式的变化是复杂的,一旦你理解了他们是如何被构造的话,你就能解析或者构建任意的正则表达式了。
密码校验规则如下:
1.必须包含数字、字母、特殊字符三种
2.长度至少8位
3.不能包含3位及以上相同字符的重复(hhh123@jixxx)
4.不能包含3位及以上字符组合的重复(123q123c123)
5.不能包含3位以上的正序及逆序连续字符(123#wete#321)
6.不能包含空格、制表符、换页符等空白字符
7.支持特殊字符范围:^$./,;:'!@#%&*|?+(){}[]
按照需求进行正则表达式拆解
规则1&&8:
str.matches("^.*[a-zA-Z]+.*$") && str.matches("^.*[0-9]+.*$")
&& str.matches("^.*[/^/$/.//,;:'!@#%&/*/|/?/+/(/)/[/]/{/}]+.*$")
规则2:
str.matches("^.{8,}$")
规则3:
!str.matches("^.*(.)\\1{2,}+.*$")
规则4:
!str.matches("^.*(.{3})(.*)\\1+.*$")
规则5&&7:
javaImpl:
first change str to char[]
then for Math.abs(cc[0] - cc[1]) == 1 && (cc[0] - cc[1]) == (cc[1] - cc[2])
如果想去掉特殊字符的连续:
first str.split("[^\\w]+") as str1[]
then for str1[]
then for str1[i] javaImpl:
规则6:
!str.matches("^.*[\\s]+.*$")
‘叁’ 求一个java密码正则表达式
正则表达式规则:
至少一个大写字母English letter,(?=.*?[A-Z])
至少一个小写英文字母,(?=.*?[a-z])
至少有一位数字,(?=.*?[0-9])
至少有一个特殊字符,(?=.*?[#?!@$%^&*-])
最小八个长度.{8,}(带锚)
你自己组合下就好了。
‘肆’ 写一个java正则表达式,判断输入的密码强度,是数字弱,是字母较弱,数字加字母强,用\s写
importjava.util.Scanner;
publicclassJButtonTest
{
publicstaticvoidmain(String[]args)
{
Scannerscanner=newScanner(System.in);
System.out.println("写一个java正则表达式,判断输入的密码强度,是数字弱搜索,是字母较弱,数字加字母强:");
while(scanner.hasNextLine())
{
Stringline=scanner.nextLine();
if(line.matches("^\d+$"))
{
System.out.println("数字弱");
}
elseif(line.matches("^[a-zA-Z]+$"))
{
System.out.println("字母弱");
}
elseif(line.matches("(?i)^((\d+[\da-z]*[a-z]+)|([a-z]+[\da-z]*\d+)|([a-z]+[\da-z]*[a-z]*)|(\d+[\da-z]*\d*))$"))
{
System.out.println("密码强");
}
else
{
System.out.println("你不按套路出牌啊。你滴承诺尼,你滴担架尼?");
scanner.close();
break;
}
}
}
}