// This function was sourced from sd-pwcheck repository; please keep // this in sync with it. // Returns true if password meets complexity requirements // Returns false otherwise. function sd_pwcheck_complexity (pw) { if (pw.length < 14) { return false; } var req_hits = 1; if (pw.length >= 14) { req_hits = 1; } var categories = { upper: /[A-Z]/, lower: /[a-z]/, digit: /[0-9]/, punct: /[;:'",.<>\?\/\!\@\#\$\%\^\&\*\(\)\-\_\+\=\~\`\[\]\{\}]/ }; var hits = 0; for (c in categories) { if (categories[c].test(pw)) { hits++; } } return(hits >= req_hits); }