var m_strUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var m_strLowerCase = "abcdefghijklmnopqrstuvwxyz";
var m_strNumber = "0123456789";
var m_strCharacters = "!@#$%^&*?_~()+-=<>{}|`:;[]/.,'\"\\";
// Checks a string for a list of characters
function countContain(strPassword, strCheck)
{
// Declare variables
var nCount = 0;
for (var i = 0; i < strPassword.length; i++)
{
if (strCheck.indexOf(strPassword.charAt(i)) > -1)
{
nCount++;
}
}
return nCount;
}
/*
Modified passwordValid code to address the requirement of meeting
3 of 4 conditions for password strength instead of 4 of 4 conditions.
Author : Fred Piger
Date : 1/3/2026
*/
function passwordValid(strPassword)
{
var strengthCounter = 0;
if (strPassword.length < 12)
return false;
if(countContain(strPassword, m_strUpperCase) != 0)
strengthCounter++;
if(countContain(strPassword, m_strLowerCase) != 0)
strengthCounter++;
if(countContain(strPassword, m_strNumber) != 0)
strengthCounter++;
if(countContain(strPassword, m_strCharacters) != 0)
strengthCounter++;
if(strengthCounter < 3)
{
return false;
}
else
{
return true;
}
}