后台密码校验

任务需求如下:

1.密码的长度不少于8位
2.连续的字母和数字不能超过4个,譬如abcd、1234
3.不能出现连续4个的键盘序列,譬如qwer


拿到需求后,就往正则表达式方面去想。然而没有学过正则表达式,看了正则表达式相当的资料还是不懂就慌了。后来整理了一下思路,不用正则表达式的方式来写。
第一个要求很简单跳过。
第二个要求一开始是打算自己写方法来判断,每个字符都跟后面的3个字符比较,就是很蠢笨的方法。后来大神给了提示,用一个编写好了的序列来做比较即可。
第三个要求其实跟第二个要求一样,只是换一个比较的序列。

代码如下:
public static String validate(String str) {
		if (str.length() < 8) {
			return "长度小于8位!";
		} else {
			String validateStr1 = "abcdefghijklmnopqrstuvwxyz\tzyxwvutsrqponmlkjihgfedcba\t0123456789\t987654321";
			String[] validateStr2 = new String[] { "qwertyuiop[]", "][poiuytrewq", "asdfghjkl;'", "';lkjhgfdsa",
					"zxcvbnm,./", "/.,mnbvcxz", "~!@#$%^&*()_+", "+_)(*&^%$#@!~" };
			for (int i = 0; i <= str.length() - 4; i++) {
				String s = str.toLowerCase().substring(i, i + 4);
				if (validateStr1.contains(s)) {
					return "连续字母或数字超过4个!";
				} else {
					for (String ms : validateStr2) {
						if (ms.contains(s)) {
							return "出现连续4个键盘序列!";
						}
					}
				}
			}
			
			
		}
		return "验证成功!";
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值