首页 > 解决方案 > 键入时的密码验证不适用于 Vanilla JavaScript 中的特殊字符

问题描述

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

为此,我为大写、数字和特殊字符做了 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

标签: javascriptregexpasswords

解决方案


推荐阅读