一個強密碼應滿足以下所有條件:
至少6個,至多20個字符組成。
至少包含一個小寫字母,一個大寫字母,和一個數字。
同一字符不能連續出現三次(比如“…aaa…”是不允許的,但是“…aa….a…”是可以的)。
編寫函數strongPasswordCheck(s),s代表輸入字符串,如果s已經符合強密碼條件,則返回0;否則返回要將s修改爲滿足強密碼條件的字符串所需要進行修改的最小步數,每次只操作單個字符。
插入、刪除、替換任一字符都算作一次修改。
/**
* @param {String} s
* @return {Number}
*/
var strongPasswordCheck = function(s) {
var pattern = /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![a-z0-9]+$)[a-zA-Z0-9]{6,20}$/;
//如果符合至少6個,至多20個字符組成。至少包含一個小寫字母,一個大寫字母,和一個數字。
if (pattern.test(s)) {
var reg = /(\w)\1{2}/g,
strContinue = null;
strContinue = s.match(reg);
if (strContinue && strContinue.length > 0) { //出現了aaa這種連續的字符
// console.log(strContinue);
return 1;
} else { //符合條件的字符
return 0;
}
} else {
return 1;
}
}