Creating Password Strength Meter

Recently I was required to write a password strength meter in Filemaker,here I am sharing the  logic behind evaluating password strength, which will give you a clear idea for writing one in your own working platform.As we know, the instantaneous visual feedback provides the user a means to improve the strength of their passwords, with a hard focus on breaking the typical bad habits of faulty password formulation.

Here are the password strength factors and weightings which I have taken in account here for this function. 

Password length: level 0 (3 point): less than 4 characters level 1 (6 points): between 5 and 7 characters level 2 (12 points): between 8 and 15 characters

level 3 (18 points): 16 or more characters

letters: level 0 (0 points): no letters exist level 1 (1 points): at least one lower case letter exist

level 2 (5 points): at least one upper case letter exist

numbers: level 0 (0 points): no numbers exist level 1 (5 points): at least one number exist

level 1 (5 points): at least three numbers exist

special characters: level 0 (0 points): no special characters exist level 1 (5 points): at least one special character exist

level 2 (5 points):at least two special characters exist

combinatons: level 0 (2 points): both upper and lower case exist level 1 (2 points): both letters and numbers exist

level 2 (2 points): letters, numbers, and special characters exist

function checkPassword(passwd)
{
        var intScore   = 0
        var intPasswdLen = passwd.length
        
        // Password Leagth
        if (intPasswdLen4 && intPasswdLen7 && intPasswdLen15)                                // check length 16 or more
        {
            intScore = (intScore+18)
        }
        
        
        // VERIFIED LETTERS 
        if (passwd.match(/[a-z]/))                               // verified at least one lower case letter exist
        {
            intScore = (intScore+1)
        }
        
        if (passwd.match(/[A-Z]/))                              // verified at least one upper case letter
        {
            intScore = (intScore+5)
        }
        
        // VERIFIED NUMBERS
        if (passwd.match(/\d+/))                                 // verified at least one number
        {
            intScore = (intScore+5)
        }
        
        if (passwd.match(/(.*[0-9].*[0-9].*[0-9])/))      // verified at least three numbers
        {
            intScore = (intScore+5)
        }
        
        
        // VERIFIED SPECIAL CHAR 
        if (passwd.match(/.[!,@,#,$,%,^,&,*,?,_,~]/))    // verified at least one special character
       
            intScore = (intScore+5)
        }
        
        // verified at least two special characters
        if (passwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/))        
       {
            intScore = (intScore+5)
        }
    
        
        // COMBOS 
        if (passwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))      // verified both upper and lower case exist
        {
            intScore = (intScore+2)
        }

        if (passwd.match(/([a-zA-Z])/) && passwd.match(/([0-9])/)) // verified both letters and numbers
        {
            intScore = (intScore+2)
        }
        
        // verified letters, numbers, and special characters
        if (passwd.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/))        
        {
            intScore = (intScore+2)
        }
            
        //Return Score 
        return (intScore)
    
}
 
//Set status of password if required in above code by if-else conditional statement
Score 15 and  Score 24 and  Score 34 and  Score =45 : strStatus = "strong"
150 150 Burnignorance | Where Minds Meet And Sparks Fly!