import upDownSpecial from '../../TypeJudgment/upDownSpecial'; import isSpecial from '../../TypeJudgment/isSpecial'; /** * 查密码复杂度 * * @param szPwd {String} * @param szUser {String} * @returns {Number} * @example * * checkPasswordComplexity('123', ''); * // => 1 */ function checkPasswordComplexity(szPwd: string, szUser: string) { let iResult = 0; szPwd.match(/[a-z]/g) && iResult++; szPwd.match(/[A-Z]/g) && iResult++; szPwd.match(/[0-9]/g) && iResult++; szPwd.match(/[^a-zA-Z0-9]/g) && iResult++; if ( (szPwd.length > 0 && szPwd.length < 8) || szPwd === szUser || szPwd === szUser.split('').reverse().join('') || -1 !== szPwd.indexOf('123') || -1 !== szPwd.toLowerCase().indexOf('admin') || upDownSpecial(szPwd) || isSpecial(szPwd, 4) || -1 !== szPwd.indexOf('1qaz2wsx') || -1 !== szPwd.indexOf('1qaz@WSX') || -1 !== szPwd.indexOf('!@#$QWER') || -1 !== szPwd.indexOf('p@ssword') || -1 !== szPwd.indexOf('passw0rd') || -1 !== szPwd.indexOf('p@ssw0rd') ) { iResult = 1; } iResult = iResult > 3 ? 3 : iResult; return iResult; } export default checkPasswordComplexity;