jQuery plugin: Password Validation

This plugin extends the jQuery validation plugin, providing two components:

  • A function that rates passwords for factors like mixed upper/lower case, mix of characters (digits, special characters), length and similarity to a username (optional).
  • A custom method for the validation plugin that uses the rating function to display a password strength meter, requiring the field to have a “good” rating. The text displayed can be localized.

In its simplest form, the rating looks like this:

You can easily customize the appearance of the strength meter and localize the messages and integrate it into existing forms.

To use the plugin, add a class “password” to your input, as well as the base markup for the strength meter, wherever you want to display it in your form:

<form id="register">
	<label for="password">Password:</label>
	<input class="password" name="password" id="password" />
	<div class="password-meter">
		<div class="password-meter-message"> </div>
		<div class="password-meter-bg">
			<div class="password-meter-bar"></div>
		</div>
	</div>
</form>

And apply the validation plugin to the form:

$(document).ready(function() {
  $("#register").validate();
});

You can override $.validator.passwordRating with your own implementation for a different rating approach. Or override $.validator.passwordRating.messages to provide other messages, eg. localized.

Current version: 1.0.0
License: MIT/GPL

Files:

Download
Demos

Dependencies

Required

Support

  • Please post questions to the official Using jQuery Plugins Forum, tagging your question with (at least) “validatepassword”. Keep your question short and succinct and provide code when possible; a testpage makes it much more likely that you get an useful answer in no time.

Donate

$ USDDonate€ EURDonate


No more comments.
  1. 28. May 2009 |19:14

    I noticed after you put a space in there, dosn’t matter what else, the script returns “STRONG” which I just typed a space.

  2. 29. May 2009 |08:39

    @Braunson: Thats right. Currently any password with a combination of lower, upper and digits, or lower and digits, or upper and digits, or special characters (any character outside the a-z, 0-9 range) is considered strong.

    In code that is: lower && upper && digit || lower && digits || upper && digits || special

    Obviously this is a specialized password scheme. The purpose of this plugin is to provide a base implementation, either for direct use, or as a reference for your own implementation. And it abstracts the password rating from the strength meter display, so whatever your rating implemention looks like, there is no need to reimplement that password meter.

  3. Rob
    4. August 2009 |08:47

    This only works AFTER the user has tabbed out of the text box. Is there a way to make this work as the user types?

  4. 4. August 2009 |09:14

    @Rob: Yes, there is.

    $("#password").keyup(function() {
      $(this).valid();
    });

    That will validate the input on each keypress.

  5. Rob
    5. August 2009 |05:52

    Thanks Jörn. It seems calling $(“#password”).valid() (without keyup) on its own does the same thing.

  6. 11. January 2010 |09:35

    cool plugin.. i use it now.. thank you very much