You are hereBlogs / Aakash's blog / Regular Expression to Check Password Strength

Regular Expression to Check Password Strength


By Aakash - Posted on 02 November 2009

Last few days I was trying hard to come up with a Regular Expression for checking password strength in JavaScript. For those who don't know what is a regular expression and How it can be used, Here is a wonderful link for you. Regular Expression can be a very handy code, for Matching two strings, Data Validation and even Syntax Highlighting.

I could have use Ajax toolkit for checking password strength in a Asp.Net page. But that would be done at Server Side. So I decided to make it in JavaScript. I wrote this little but efficient script to check password strength at Client Side.

Take a Demonstration

<script type="text/javascript">
function passwordcheck()
    {
       var password=document.getElementById('txtPassword').value;
 
 
        var noofchar=/^.*(?=.{6,}).*$/;
   	var checkspace=/\s/;
        var best=/^.*(?=.{6,})(?=.*[A-Z])(?=.*[\d])(?=.*[\W]).*$/;
        var strong=/^[a-zA-Z\d\W_]*(?=[a-zA-Z\d\W_]{6,})(((?=[a-zA-Z\d\W_]*[A-Z])(?=[a-zA-Z\d\W_]*[\d]))|((?=[a-zA-Z\d\W_]*[A-Z])(?=[a-zA-Z\d\W_]*[\W_]))|((?=[a-zA-Z\d\W_]*[\d])(?=[a-zA-Z\d\W_]*[\W_])))[a-zA-Z\d\W_]*$/;
        var weak=/^[a-zA-Z\d\W_]*(?=[a-zA-Z\d\W_]{6,})(?=[a-zA-Z\d\W_]*[A-Z]|[a-zA-Z\d\W_]*[\d]|[a-zA-Z\d\W_]*[\W_])[a-zA-Z\d\W_]*$/;
        var bad=/^((^[a-z]{6,}$)|(^[A-Z]{6,}$)|(^[\d]{6,}$)|(^[\W_]{6,}$))$/;
 
       if (true==checkspace.test(password))
           tdPwdStrength.innerHTML="spaces are not allowed";        
       else if (false==noofchar.test(password))
            {
            tdWeak.bgColor="transparent";
            tdStrong.bgColor="transparent";
            tdBest.bgColor="transparent";
            tdBad.bgColor="transparent"
            tdPwdStrength.innerHTML="must be 6 char";
             }
       else if(best.test(password))
            {
            tdBad.bgColor="green";
            tdWeak.bgColor="green";
            tdStrong.bgColor="green";
            tdBest.bgColor="green";
            tdPwdStrength.innerHTML="best";
            }
       else if(strong.test(password))
            {
            tdBad.bgColor="yellow";
            tdWeak.bgColor="yellow";
            tdStrong.bgColor="yellow";
            tdBest.bgColor="transparent"
            tdPwdStrength.innerHTML="Strong";
            }     
       else if(weak.test(password)==true && bad.test(password)==false)
            {   
            tdBad.bgColor="orange";
            tdWeak.bgColor="orange";
            tdStrong.bgColor="transparent";
            tdBest.bgColor="transparent";
            tdPwdStrength.innerHTML="weak";
            }
        else if(bad.test(password))
            {
            tdWeak.bgColor="transparent";
            tdStrong.bgColor="transparent";
            tdBest.bgColor="transparent";
            tdBad.bgColor="red";
            tdPwdStrength.innerHTML="Bad";
            }
                 }
</script>
 
 
<html>
 
<input type="text" id="txtPassword" onkeyup="passwordcheck()"/>
<span id="tdPwdStrength">Password Strength</span>
             <table width="100px" >
                           <tr style="height:25px">
                           <td id="tdBad" ></td>
                           <td id="tdWeak"></td>
                           <td id="tdStrong"></td>
                           <td id="tdBest"></td>
                           </tr>
                    </table>
</html> 

Thanks for the script. I am going to use it on my website. Can you please tell me how to check qwerty, asdf,pqrs type strings in passwords.

good guys

goodgoogd

Thanks a lot... This is greate!!! 

I'm pretty pleased to uncover this great site.
I want to to thank you for your time just for this fantastic
read!! I definitely savored every part of it and i also
have you book marked to see new information on your site.

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr><br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong><font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike> <caption>
  • You can enable syntax highlighting of source code with the following tags: <c>, <cpp>, <csharp>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <sql>, <tsql>, <vbnet>, <xml>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • Lines and paragraphs break automatically.

More information about formatting options