键入密码验证在Vanilla JavaScript中不适用于特殊字符

时间:2018-08-31 10:03:35

标签: javascript regex passwords

我是一名新开发人员,实际上我正在尝试输入密码,以便在键入时检查是否有好字符。

为此,我对大写字母,数字和特殊字符进行了RegExp。

大写字母和数字很好用,但是我不知道为什么特殊字符不起作用。

HTML

<input type="text" class="input">
<p class="maj">uppercase</p>
<p class="number">number</p>
<p class="carspe">special chracters</p>
<p class="carac">min 8 characters</p>

CSS

.maj{
  color:red;
}

.number{
  color:red;
}

.carac{
  color:red;
}

.carspe {
  color:red;
}

JS

var input = document.querySelector('.input');
var maj = document.querySelector('.maj');
var number = document.querySelector('.number');
var carspe = document.querySelector('.carspe');
var carac = document.querySelector('.carac');

var uppercase = /[A-Z]/g;
var numbers = /[0-9]/g;
var carspe = /[!@#$%^&*(),.?":{}|<>]/g;

input.addEventListener('input', function() {

  if (input.value.match(uppercase)) {
    maj.style.color = 'green';
  } else {
    maj.style.color = 'red';
  }

  if (input.value.match(numbers)) {
    number.style.color = 'green';
  } else {
    number.style.color = 'red';
  }

  if (input.value.length >= 8) {
    carac.style.color = 'green';
  } else {
    carac.style.color = 'red';
  }

  if (input.value.match(carspe)) {
    carspe.style.color = 'green';
  } else {
    carspe.style.color = 'red';
  }


})

感谢您抽出宝贵的时间来学习我的问题和将来的帮助<3

0 个答案:

没有答案