Password Validation using JavaScript

Password Validation using JavaScript | Check if password includes digits, lowercase, uppercase and special characters | Show/Hide password.

preview

Hello! Lets learn how we can make Password validation system using javaScript.

Password Validation system is a concept where we validate if the password entered contains numbers, lowercase and uppercase letters and special characters. This project also include functionality to show or hide password with one click.

Lets get started with the code!

HTML Code

<html>
  <head>
    <title>Password Validation</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" />
  </head>
  <body>
    <form>
      <h1>Password Validation</h1>
      <div class="form-group">
        <input type="password" id="pass" placeholder="Enter password" required>
        <i class="fas fa-eye fa-eye-slash"></i>
      </div>
      <small>Include <span id="number">numbers</span>, <span id="lcase">lowercase</span>, <span id="ucase">uppercase</span> and <span id="symbol">special chars</span>.</small>
    </form>
  </body>
</html>

CSS Code

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: verdana;
}

body {
  min-height: 100vh;
  background: #222;
  color: #fff;
  display: flex;
}

form {
  margin: auto;
  background: #111;
  padding: 1.5rem 2.5rem;
}

.form-group {
  margin-top: 2rem;
  width: 100%;
  background: #fff;
  display: flex;
  align-items: center;
  overflow: hidden;
  border-radius: 4px;
}

h1 {
  text-align: center;
}

input {
  flex: 1;
  background: 0;
  outline: 0;
  border: 0;
  padding: 0.8rem;
}

.fas {
  background: #007bff;
  padding: 0.8rem;
  cursor: pointer;
}

small {
  margin-top: 0.5rem;
  display: inline-block;
  font-size: .75rem;
  color: #666;
}

JavaScript Code

const pass = document.getElementById('pass');
const fas = document.querySelector('.fas');

fas.addEventListener('click', () => {
  fas.classList.toggle('fa-eye-slash');
  pass.type == 'password' ? pass.type = 'text' : pass.type = 'password';
})

pass.addEventListener('input', () => {
  if (pass.value.length < 6 || pass.value.length > 15)
    pass.style.background = 'rgba(255, 0, 0, .2)';
  else
    pass.style.background = '#fff';
  
  if(pass.value.match(/[A-Z]/) == null) {
    pass.style.background = 'rgba(255, 0, 0, .2)';
    checkValid('ucase', false);
  }
  else {
    checkValid('ucase', true);
  }
  
  if(pass.value.match(/[a-z]/) == null) {
    pass.style.background = 'rgba(255, 0, 0, .2)';
    checkValid('lcase', false);
  }
  else {
    checkValid('lcase', true);
  }
  
  if(pass.value.match(/[0-9]/) == null) {
    pass.style.background = 'rgba(255, 0, 0, .2)';
    checkValid('number', false);
  }
  else {
    checkValid('number', true);
  }
  
  if(pass.value.match(/[!@#$%^&*()]/) == null) {
    pass.style.background = 'rgba(255, 0, 0, .2)';
    checkValid('symbol', false);
  }
  else {
    checkValid('symbol', true);
  }
})

const checkValid = (selector, isIncluded) => {
  const sel = document.getElementById(selector);
  isIncluded ? sel.style.color = '#0f0' : sel.style.color = '#f00';
}

Output


That is all! I hope you find this interesting. Thank you for visiting.
Post a Comment (0)
Previous Post Next Post