I just can't do it without being able to test it. I researched it a little and in the case of the register page there's a hook location just before you output the template, so you could just build whole new modified template called "register_advanced" and output that instead. As for the html for changing the password you could use "modifypassword_advanced" and call for that in a plugin at "profile_complete" and override the earlier call for "modifypassword". That way there's no hacking up the original templates. As for messing with the JS you would want server confirmation I suppose, just translate the JS rejex test into a PHP rejex test. But another possibility is in the new templates, have the submit buttons disabled and enabled by JS only if the password strength conditions are met.
--------------- Added [DATE]1380656685[/DATE] at [TIME]1380656685[/TIME] ---------------
I may be checking for strong passwords in a project I'm planning so this is what I plan on using in the template
HTML Code:
<input type="password" id="password" onkeydown="strongPassword.checkPasswords();" /><input type="password" id="confirmpassword" onkeydown="strongPassword.checkPasswords();" /><p id="use_strong_password" style="font-weight:bold;color:red;">You must use an upper-case letter, a lower-case letter and a number in your password</p><script>
function vB_Strong_Password() {
this.newPassword = fetch_object('password');
this.confirmPassword = fetch_object('confirmpassword');
}
vB_Strong_Password.prototype.checkPasswords = function() {
if(this.check(this.newPassword) && this.check(this.confirmPassword)) {
fetch_object('use_strong_password').style.display = 'none';
fetch_object('submit_button').removeAttribute('disabled'); // give the submit button an id and disabled="disabled"
}
}
vB_Stong_Password.prototype.check = function(elt) {
var strongPassword = (/[A-Z]/.test(elt.value) && /[a-z]/.test(elt.value) && /[0-9]/.test(elt.value));
return strongPassword;
}
strongPassword = new vB_Strong_Password();
</script>