Simple Password Validator with just Vanilla JS
A Pen by Iah Buenacosa on CodePen.
| <div> | |
| <input id="passInput" type="password" placeholder="Enter password"> | |
| <p> | |
| Password should contain at least | |
| <span id="length" class="invalid">8 characters</span>, | |
| <span id="capital" class="invalid">1 upper case letter</span>, | |
| <span id="letter" class="invalid">1 lower case letter</span>, | |
| <span id="number" class="invalid">1 number</span>, and | |
| <span id="character" class="invalid">1 special character</span> | |
| </p> | |
| </div> |
| document.addEventListener("DOMContentLoaded", function(event) { | |
| var passInput = document.getElementById("passInput"); | |
| var letter = document.getElementById("letter"); | |
| var capital = document.getElementById("capital"); | |
| var number = document.getElementById("number"); | |
| var length = document.getElementById("length"); | |
| var character = document.getElementById("character"); | |
| var lowerCaseLetters = /[a-z]+/; | |
| var upperCaseLetters = /[A-Z]+/; | |
| var numbers = /[0-9]+/; | |
| var characters = /[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]+/; | |
| var remClass, addClass; | |
| valid = (req, state) => { | |
| remClass = state ? "invalid" : "valid"; | |
| addClass = state ? "valid" : "invalid"; | |
| req.classList.remove(remClass); | |
| req.classList.add(addClass); | |
| } | |
| passInput.onkeyup = () => { | |
| // Validate lowercase letters | |
| lowerCaseLetters.test(passInput.value) ? valid(letter, true) : valid(letter, false); | |
| // Validate capital letters | |
| upperCaseLetters.test(passInput.value) ? valid(capital, true) : valid(capital, false); | |
| // Validate numbers | |
| numbers.test(passInput.value) ? valid(number, true) : valid(number, false); | |
| // Validate characters | |
| characters.test(passInput.value) ? valid(character, true) : valid(character, false); | |
| // Validate length | |
| passInput.value.length >= 8 ? valid(length, true) : valid(length, false); | |
| } | |
| }) | |
Simple Password Validator with just Vanilla JS
A Pen by Iah Buenacosa on CodePen.
| .valid { color: #D8DD22 !important; } | |
| .invalid { color: #D91171 !important; } | |
| /* Extra Styling */ | |
| body { | |
| background: #0C2D57; | |
| } | |
| div { | |
| width: 400px; | |
| margin: 80px auto; | |
| background: #061733; | |
| padding: 60px 40px 60px 60px; | |
| border-radius: 15px; | |
| box-shadow: 0 3px 15px rgba(0, 0, 0, .1); | |
| } | |
| div input { | |
| width: 340px; | |
| padding: 17px; | |
| border-radius: 5px; | |
| border: none; | |
| box-shadow: 0 3px 15px rgba(0, 0, 0, .1); | |
| margin: 0 auto; | |
| } | |
| div p { | |
| font-family: 'Helvetica', 'Segoe UI Light', sans-serif; | |
| font-size: 14px; | |
| color: #fff; | |
| } | |