帮忙写个校验密码的类,谢谢,在线等 校验密码: 密码规则 1里面必须包含数字 和字母 2必须以字母开头 3不能出现重复的字母和数字 4不能含有”nn”5长度介于4到12之间 6不能与“oldpasw”相同 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不可以呀,要求是只能用java类来写 估计要用正则表达式,用到pattern和mathcr类,在java.util.regex包,建议去查这2个类的API. 好复杂的规则哦6 不能与“oldpasw”相同——————————————这句什么意思?没看明白 3 不能出现重复的字母和数字 4 不能含有”nn” ——————————————3 和 4 的条件不是一样的么?nn 就是重复的字母啊 oldpasw就是把它在java中写死,不用涉及到数据库 1里面必须包含数字 和字母 2必须以字母开头 3不能出现重复的字母和数字 4不能含有”nn” 5长度介于4到12之间 6不能与“oldpasw”相同 1-4用正则表式吧.5-6判断下长度和是否与旧密码相同不至于不会吧.不过3和4怎么感觉是一个概念....1 \b\w*找一遍2 \d*找一遍3 (\d)\1和(\w)\1找一遍其他的应该很简单吧.上面那几个正则表达式不知道还可不可以再合并下,反正大概就是这样了 import java.util.regex.Pattern;public class Test { public static void main(String args[]) { String str = "bao1209080"; String oldpasw = "bao120908"; String regex = "(?!" + Pattern.quote(oldpasw) + "$)(?=.*[0-9].*)([a-zA-Z])(?!\\1)(?:([0-9a-zA-Z])(?!\\2)){3,11}"; System.out.println(str.matches(regex)); }} 哥们好像你写反了吧,我的意思是不能与oldpasw相同,而你的代码是必须与oldpasw相同才是true,不过写的很正确,我改了一下 谁说的?(?!) 是否定型匹配,就是不匹配这个String str = "bao1209080";String oldpasw = "bao120908";str 比 oldpasw 后面多了个“0”,所以应该是可以的吧。 swing 方面的问题 如何得到调用这个方法的类的class name 和method name? 请问各位大侠:怎么将checkbox加载到Jtree中? 各位高手,帮忙一下,解决时间问题 JB8用什么电脑配置? javax.jms does not exist!!哪里有这个包?(j2sdk1.4.2) 新手上路,摔了一跤,help!~~~~ JFrame怎样在WINDOWS中实现自动最大化? 怎么配置JDBC的驱动呢? 以下几本书籍哪儿有down? 指点一二 帮忙写个计算器类,在线等
——————————————
这句什么意思?没看明白
4 不能含有”nn”
——————————————
3 和 4 的条件不是一样的么?nn 就是重复的字母啊
2必须以字母开头
3不能出现重复的字母和数字
4不能含有”nn”
5长度介于4到12之间
6不能与“oldpasw”相同 1-4用正则表式吧.
5-6判断下长度和是否与旧密码相同不至于不会吧.不过3和4怎么感觉是一个概念....1 \b\w*找一遍
2 \d*找一遍
3 (\d)\1和(\w)\1找一遍其他的应该很简单吧.上面那几个正则表达式不知道还可不可以再合并下,反正大概就是这样了
String str = "bao1209080";
String oldpasw = "bao120908";
String regex = "(?!" + Pattern.quote(oldpasw) + "$)(?=.*[0-9].*)([a-zA-Z])(?!\\1)(?:([0-9a-zA-Z])(?!\\2)){3,11}";
System.out.println(str.matches(regex));
}
}
String oldpasw = "bao120908";str 比 oldpasw 后面多了个“0”,所以应该是可以的吧。