checkEasyPwd function
Implementation
bool checkEasyPwd(String input, String phone) {
//1:不能出现连续的字母或者数字
var allMatchLength = input.length - 1; // 匹配全部
var preMatchLength = input.length - 2; // 匹配N-1位
RegExp allSameChar = RegExp("([0-9a-zA-Z])\\1{$allMatchLength}"); // 匹配全为连续字符
RegExp preSameChar =
RegExp("([0-9a-zA-Z])\\1{$preMatchLength}"); // 匹配n-1位位连续字符
//2:不能出现顺子(123456或654321一类) 连续的数字
// allSuccessiveNum 顺子
// startCharSuccessiveNum 第一位字母 后面顺子
// endCharSuccessiveNum 最后一位字母 前面顺子
RegExp allSuccessiveNum = RegExp(
"(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){$allMatchLength}\\d|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){$allMatchLength}\\d");
RegExp startCharSuccessiveNum = RegExp(
"[A-Za-z](?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){$preMatchLength}\\d|[A-Za-z](?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){$preMatchLength}\\d");
RegExp endCharSuccessiveNum = RegExp(
"((?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){$preMatchLength}\\d)[A-Za-z]|((?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){$preMatchLength}\\d)[A-Za-z]");
// print('----- allSameChar: $allSameChar');
// print('----- preSameChar: $preSameChar');
// print('----- allSuccessiveNum: $allSuccessiveNum');
// print('----- startCharSuccessiveNum: $startCharSuccessiveNum');
// print('----- endCharSuccessiveNum: $endCharSuccessiveNum');
// print('----- allSameChar: $input ${allSameChar.hasMatch(input)}');
// print('----- preSameChar: $input ${preSameChar.hasMatch(input)}');
// print('----- allSuccessiveNum: $input ${allSuccessiveNum.hasMatch(input)}');
// print('----- startCharSuccessiveNum: $input ${startCharSuccessiveNum.hasMatch(input)}');
// print('----- endCharSuccessiveNum: $input ${endCharSuccessiveNum.hasMatch(input)}');
return allSameChar.hasMatch(input) ||
preSameChar.hasMatch(input) ||
allSuccessiveNum.hasMatch(input) ||
startCharSuccessiveNum.hasMatch(input) ||
endCharSuccessiveNum.hasMatch(input) ||
phone.contains(input);
}