Grad Assignment: Password Validation Regex

by Faisal Pathan

HTML

<h3>Using regular expressions to validate a strong password.</h3>

<p>In this practice set, you are going to add some regular expressions to a simple password entry form.</p>
<p>We have already created the form and the event listener, you simply need to fill in the regular expressions for the following password validation checks:</p>
<ol>
    <li>Password must contain at least 8 characters.</li>
    <li>Password must contain an uppercase letter.</li>
    <li>Password must contain a lowercase letter.</li>
    <li>Password must contain a number.</li>
    <li>Password must contain a special character.</li>
</ol>
<form autocomplete="off" action="" name="passwordForm">
    <fieldset name="passwordEntry">
        <br>Password:
        <br>
        <input size="30" required="required" placeholder="password" name="pwdvalidate" id="pwdvalidate" type="password">
        <br> <span class="hint" id="pwdHint">Password must be at least 8 characters and must contain uppercase & lowercase letters, a number, and a special character.</span> 
        <br>
        <br>
        <button type="submit" id="submitBtn" name="submit">Check Password</button>
        <br>
        <legend>Enter a strong password.</legend>
    </fieldset>
    <br>
</form>

JavaScript

var formPasswordForm = document.forms["passwordForm"];
var elemPW = document.getElementById("pwdvalidate");
var bPasswordPasses = false;

function fnValidatePassword(evt) {
    // enter your regular expression to check for at least 8 characters here
    var regexPasswordLength = /.{6,}/; // test for at least 8 characters
    // enter your regular expression to check for an uppercase letter here
    var regexPasswordContainsUpperCase = /[A-Z]/; //test for uppercase letter
    // enter your regular expression to check for a lowercase letter here
    var regexPasswordContainsLowerCase = /[a-z]/; //test for lowercase letter
    // enter your regular expression to check for a number here
    var regexPasswordContainsNumber = /\d/; //test for number 
    // enter your regular expression to check for a special character here
    var regexPasswordContainsSpecialChar = /\W/; //test for special character

    bPasswordPasses = true;

    if (!regexPasswordLength.test(elemPW.value)) {
        pwdHint.innerHTML = 'Password must be at least 8 characters.';
        pwdHint.style.display = "inline";
        bPasswordPasses = false;
    }

    if (!regexPasswordContainsUpperCase.test(elemPW.value)) {
        pwdHint.innerHTML = 'Password must contain an uppercase character.';
        pwdHint.style.display = "inline";
        bPasswordPasses = false;
    }

    if (!regexPasswordContainsLowerCase.test(elemPW.value)) {
        pwdHint.innerHTML = 'Password must contain an lowercase character.';
        pwdHint.style.display = "inline";
        bPasswordPasses = false;
    }

    if (!regexPasswordContainsNumber.test(elemPW.value)) {
        pwdHint.innerHTML = 'Password must contain a number.';
        pwdHint.style.display = "inline";
        bPasswordPasses = false;
    }

    if (!regexPasswordContainsSpecialChar.test(elemPW.value)) {
        pwdHint.innerHTML = 'Password must contain a special character.';
        pwdHint.style.display = "inline";
        bPasswordPasses =...