Strong password

at least n characters
combination of upper- and lower-case characters
one or more digits
not related to other user data (name, address, username, …)
not a dictionary word

<script type="text/javascript">

	function checkForm(form)
	{
		if(form.username.value == ""){
			alert("Error: Username cannot be blank!");
			form.username.focus();
			return false;
		}
		re = /^\w+$/;
		if(!re.test(form.username.value)){
			alert("Error: Username must only letters, numbers and undersocres!");
			form.username.focus();
			return false;
		}

		if(form.pwd1.value != "" && form.pwd1.value == form.pwd2.value){
			if(form.pwd1.value.length < 6){
				alert("Error: Password must contain at least six characters!");
				form.pwd1.focus();
				return false;
			}
			if(form.pwd1.value == form.username.value){
				alert("Error: Password must be different from Username!");
				form.pwd1.focus();
				return false;
			}
			re = /&#91;0-9&#93;/;
			if(!re.test(form.pwd1.value)){
				alert("Error: password must contain at least one number(0-9)!");
				form.pwd1.focus();
				return false;
			}
			re = /&#91;a-z&#93;/;
			if(!re.test(form.pwd1.value)){
				alert("Error: password must contain at least one lowercase letter(a-z"!);
				form.pwd1.focus();
				return false;
			}
			re = /&#91;A-Z&#93;/;
			if(!re.test(form.pwd1.value)){
				alert("Error: password must contain at least one uppercase letter(A-Z");
				form.pwd1.focus();
				return false;
			}
		} else {
			alert("Error: Please check that you've entered and confirmed your password!");
			form.pwd1.focus();
			return false;
		}
		alert("You entered a valid password: " + form.pwd1.value);
		return true;
	}
</script>
<form ... onsubmit="return checkForm(this);">
<p>Username: <input type="text" name="username"></p>
<p>Password: <input type="password" name="pwd1"></p>
<p>Confirm Password: <input type="password" name="pwd2"></p>
<p><input type="submit"></p>
</form>