/**

* 密码是否是正序或反序连续4位及以上

* @param pwd

* @return true为正确,false为错误。

*/

public static boolean isPasswordContinuous(String pwd) {

int count = 0;//正序次数

int reverseCount = 0;//反序次数

String[] strArr = pwd.split("");

for(int i = 1 ; i < strArr.length-1 ; i ++) {//从1开始是因为划分数组时,第一个为空

if(isPositiveContinuous(strArr[i],strArr[i+1])) {

count ++;

}

else {

count = 0;

}

if(isReverseContinuous(strArr[i],strArr[i+1])) {

reverseCount ++;

}

else {

reverseCount = 0;

}

if(count > 2 || reverseCount > 2) break;

}

if(count > 2 || reverseCount > 2) return false;

return true;

}

/**

* 是否是正序连续

* @param str1

* @param str2

* @return

*/

public static boolean isPositiveContinuous(String str1 , String str2) {

if(str2.hashCode() - str1.hashCode() == 1) return true;

return false;

}

/**

* 是否是反序连续

* @param str1

* @param str2

* @return

*/

public static boolean isReverseContinuous(String str1 , String str2) {

if(str2.hashCode() - str1.hashCode() == -1) return true;

return false;

}

/**

* - 字母区分大小写,可输入符号

- 密码必须同时包含字母和数字

- 密码长度8-20位

- 密码中不能存在连续4个及以上的数字或字母(如:1234、7654、abcd、defgh等)

- 密码中不能包含个人手机号后4位

@author Miaozz.

@param phone 手机号码

* @param password 密码

* @return true为正确,false为错误

*/

public static boolean isPasswordAvailable(String phone,String password) {

String last4No = phone.substring(phone.length()-4);

String str = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$";//必须同时包含字母数字并且是8-20位

if(!password.contains(last4No) && password.matches(str)) {

return isPasswordContinuous(password);

}

return false;

}

java 密码是字母和数字的组合_java密码规则,必须同时包含字母和数字并且不能连续4位以上...相关推荐

  1. java 密码是字母和数字的组合_java正则表达式校验密码必须是包含大小写字母、数字、特殊符号的8位以上组合...

    本文最后更新于2019-10-25,已超过 1年没有更新,如果文章内容.图片或者下载资源失效,请留言反馈,我会及时处理,谢谢! 温馨提示:本文共1957个字,读完预计5分钟. 一.需求:密码必须是包含 ...

  2. java将从键盘输入的时间格式化_java 时间格式化中的模式字母

    java日期格式化中的模式字母有特定的意义,由于没有注意,今天在做工程的时候导致出现了奇怪的日期: 错误写法如下: 然而得到了错误的结果: 正确写法如下: 这样就得到了正确的结果 mm指的是分钟,MM ...

  3. java 判断一个字符串是否由数字组成的_Java中怎样判断一个字符串是否是数字

    展开全部 1.使用Character.isDigit(char)判断 String str = "123abc"; if (!"".equals(str)) { ...

  4. 判断字母数字下划线python_如何验证字符串只包含字母、数字、下划线和破折号?...

    [编辑]还有一个解决方案尚未提及,而且在大多数情况下,它似乎比目前给出的其他解决方案要好. 使用string.translate替换字符串中的所有有效字符,并查看是否有剩余的无效字符.这相当快,因为它 ...

  5. 【JavaScript】判断一个字符串是否是数值 / 判断是否包含字母(附常用正则表达式)

    JavaScript 使用示例 如果是值(数字),返回其值;如果不是数字,返回空字符串''. 可以避免从数据库中取到空值,导致在前端显示报错的情况. autoConvertNum()函数定义如下: / ...

  6. python定义函数,随机生成6位的密码(字母数字随机组合,包含大小写)

    定义函数pwd(),随机生成6位的密码(字母数字随机组合,包含大小写),要求在主模块中调用该函数,并输出. import randomdef pwd():all_char = '0123456789q ...

  7. 正则表达式校验密码策略最少8位,大小写字母加符号加数字的组合

    可以使用如下的正则表达式来校验密码策略最少8位,大小写字母.符号和数字的组合: ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*])(?!.*\s). ...

  8. python 组合数字和字符_python无限生成不重复(字母,数字,字符)组合的方法

    python无限生成不重复(字母,数字,字符)组合的方法 使用python自带的itertools模块 调用其product函数 传入我们想组合生成的字符数据 便会源源不断的生成组合 而且不会重复 r ...

  9. 随机生成字母数字的组合

    随机数和随机字符串在开发中频繁的使用,本篇的demo可以直接封装成为一个实体类,使用的时候直接调用里面的对应方法即可 import java.util.Random;public class Stri ...

最新文章

  1. vmware + centos6设置桥接模式
  2. 基于mcp940反编译Minecraft源代码
  3. 计算机网络实验11.6.1,6.111 2004春季课程:数位系统概论实验(Introductory Digital Systems Laboratory, Spring 2004)...
  4. WordPress插入图片无法居中的解决方法
  5. Trie 树是什么样的数据结构?有哪些应用场景?
  6. win7电脑更改不了分辨率的解决方法
  7. vscode Java 11 or more recent is required to run. Please download and install a recent JDK
  8. qtablewidget固定一列滚动_简单易懂,最全滚动轴承基本知识汇总
  9. linux权限案例,Linux下的权限体系
  10. 10种开发以及改善应用的低成本方法
  11. Java中拦截器和过滤器的声明用途和区别
  12. python进阶13并发之九多进程和数据共享
  13. html怎么直接给服务器发消息,HTML5教程之服务器发送事件
  14. ping可以访问百度ip但不能访问百度域名|couldn't resolve host api.weixin.qq.com
  15. windows下命令行发送邮件blat.exe
  16. 文件管理之文件后缀名识别
  17. 用户生命周期,从运营到数据的最全攻略在这里
  18. ios 版手机迅雷的安装方法
  19. 三层交换机dhcp服务器性能,CISCO三层交换机怎么配置DHCP服务?
  20. UE-战斗无止境的UI实现

热门文章

  1. 高级语言中的单词——5种类型的token
  2. 希望我这也能成为散文诗
  3. Excel Aspose.Cells设置百分比
  4. 不需要正版账号我的世界的服务器,我的世界正版借号-借一个我的世界正版账号?...
  5. 为别人做嫁衣裳——代理模式
  6. redis学习笔记(九)RDB
  7. python安装cvxopt_Python CVXOPT模块安装及使用解析
  8. Robotframework 入门教程(一)
  9. 2021-07-02工程建设项目审批办事指南二维码
  10. android 7相机拍照功能介绍,镜头配备及拍照功能介绍_华为 Mate 7_手机Android频道-中关村在线...