Санкционировать пароли в формуляре

Я создаю формуляр, чтобы менять пароль на мой Веб, формуляр показывает визуальную помощь пользователям для того, чтобы они выполнили комплексность пароля. В общем оно функционирует хорошо, но если пользователь просто делает tab без писания ни подтверждать пароль рукописный шрифт, он это санкционирует, как который - Оба пароля - оба, они равны - Так как оба поля пустые.

Ayuda validación complejidad contraseña

Мне хотелось бы, что рукописный шрифт санкционировал, если пароли равны только, если поля не являются пустыми.

Это код моего javascript и html

$(document.registration).ready(function() {

  $('input').keyup(function() {
    // set password variable
var password = $(this).val();
var p1 = document.getElementById("password1").value;
var p2 = document.getElementById("password2").value;
var noValido = / /;

//validar longitud contraseña
if ( password.length < 8 ) {
    $('#length').removeClass('valid').addClass('invalid');
} else {
    $('#length').removeClass('invalid').addClass('valid');
}
//validar letra
if ( password.match(/[A-z]/) ) {
    $('#letter').removeClass('invalid').addClass('valid');
} else {
    $('#letter').removeClass('valid').addClass('invalid');
}

//validar letra mayúscula
if ( password.match(/[A-Z]/) ) {
    $('#capital').removeClass('invalid').addClass('valid');
} else {
    $('#capital').removeClass('valid').addClass('invalid');
}

//validar numero
if ( password.match(/\d/) ) {
    $('#number').removeClass('invalid').addClass('valid');
} else {
    $('#number').removeClass('valid').addClass('invalid');
}

//validar confirmación contraseña
if (p1.length == 0 || p2.length == 0) {
  $('#null').removeClass('valid').addClass('invalid');
} else {
  $('#null').removeClass('invalid').addClass('valid');
}

//validar contraseñas cohincidan
if (p1 != p2) {
  $('#match').removeClass('valid').addClass('invalid');
} else {
  $('#match').removeClass('invalid').addClass('valid');
}

if(noValido.test(p1 || p2)){ // se chequea el regex de que el string no tenga espacio
  $('#blank').removeClass('valid').addClass('invalid');
} else {
  $('#blank').removeClass('invalid').addClass('valid');
}

}).focus(function() {
    $('#pswd_info').show();
}).blur(function() {
    $('#pswd_info').hide();
});

});




La contraseña debe cumplir los siguientes requerimientos:

  • Al menos una letra
  • Al menos una letra mayúscula
  • Al menos un número
  • Al menos 8 carácteres
  • Debe confirmar la contraseña
  • Las contraseñas deben cohincidir
  • Las contraseñas no deben tener espacios

2
задан 05.11.2019, 17:10
2 ответа

Старайся санкционировать всегда сначала, что поля не estГ©n vacГ - вы, так как empieza, который должен выполнять каждую из вещей, что ты просишь у него санкционировать, но так как, он неуместный, так как поля estГЎn vacГ - вы, тогда в этом случае немного asГ - estarГ - в добро.

$(document.registration).ready(function() {

  $('input').keyup(function() {
    // set password variable
    var password = $(this).val();
    var p1 = document.getElementById("password1").value;
    var p2 = document.getElementById("password2").value;
    var noValido = / /;


    //validar longitud contraseña
    if ( password.length < 8 ) {
        $('#length').removeClass('valid').addClass('invalid');
    } else {
        $('#length').removeClass('invalid').addClass('valid');
    }
    //validar letra
    if ( password.match(/[A-z]/) ) {
        $('#letter').removeClass('invalid').addClass('valid');
    } else {
        $('#letter').removeClass('valid').addClass('invalid');
    }

    //validar letra mayúscula
    if ( password.match(/[A-Z]/) ) {
        $('#capital').removeClass('invalid').addClass('valid');
    } else {
        $('#capital').removeClass('valid').addClass('invalid');
    }

    //validar numero
    if ( password.match(/\d/) ) {
        $('#number').removeClass('invalid').addClass('valid');
    } else {
        $('#number').removeClass('valid').addClass('invalid');
    }

    if(p1 != "" && p2 != ""){

      //validar confirmación contraseña
      if (p1.length == 0 || p2.length == 0) {
        $('#null').removeClass('valid').addClass('invalid');
      } else {
        $('#null').removeClass('invalid').addClass('valid');
      }

      //validar contraseñas cohincidan
      if (p1 != p2) {
        $('#match').removeClass('valid').addClass('invalid');
      } else {
        $('#match').removeClass('invalid').addClass('valid');
      }

      if(noValido.test(p1 || p2)){ // se chequea el regex de que el string no tenga espacio
        $('#blank').removeClass('valid').addClass('invalid');
      } else {
        $('#blank').removeClass('invalid').addClass('valid');
      }
    }

  }).focus(function() {
      $('#pswd_info').show();
  }).blur(function() {
    $('#pswd_info').hide();
  });

});

OjalГЎ подал тебя, любое сомнение или подсказка ты комментируешь ее мне, привет!!

1
ответ дан 01.12.2019, 12:41
  • 1
    В общем я funcionó изменитесь оператор в//проверяет regex, которого у string не есть места if (noValido.test (p1 & & p2)) { для того, чтобы revisará оба поля. Однако я замечаю, что, если я использую má s 8 типов места я, стоивший правило 8 символов-//санкционировать длину contraseñ в if (password.length < 8) { $ (' #length') .removeClass (' valid') .addClass (' invalid'); } else { $ (' #length') .removeClass (' invalid') .addClass (' valid'); } - Я Верю в то, что evaluaré сначала место перед всем demá s, хотя не, если он покрыл случай совсем. – Derwing Medina 05.11.2019, 17:39
  • 2
    Ты должен пробовать покрывать все пустоты, sí ты санкционируешь, что он был превосходящим 8 символов, тогда стоивший, когда он будет меньше, и así равный пытаясь ты понимаешь, что тебе не хватает вещей, так что протестируй это многообразных форм pensables – DaxTter77 05.11.2019, 17:41

Идеальное состоит в том, чтобы использовать одну expresiГіn регулировать, чтобы санкционировать все случаи, которые ты комментируешь.

, Если ты хочешь, чтобы ты contraseГ±a в обоих полях он выполнил эти случаи:

introducir la descripción de la imagen aquí

ты можешь использовать ее expresiГіn регулировать:

var regex =/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{8,}$/;

, которая санкционирует contraseГ±as по крайней мере буквы, по крайней мере число, по крайней мере букву mayГєscula, по крайней мере 8 символов, не позволяет место.

Восток - пример используя Regexp и санкционируя поля, чтобы подтверждать стоимость ее contraseГ±a:

  function checkPassword(valor){
    var myregex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$/; 
   if(myregex.test(valor)){
       alert(valor+" es valido :-) !");
       return true;        
   }else{
      alert(valor+" NO es valido!");
       return false;        
   }   
 }

  function checkForm(form){
    if(form.username.value == "") {
      alert("Error: Debe escribir Usuario!");
      form.username.focus();
      return false;
    }
    re = /^\w+$/;
    if(!re.test(form.username.value)) {
      alert("Error: Nombre de usuario debe contener únicamente letras, numeros y underscores!");
      form.username.focus();
      return false;
    }
    if(form.pwd1.value != "" && form.pwd1.value == form.pwd2.value) {
      if(!checkPassword(form.pwd1.value)) {
        alert("La contraseña no es valida!");
        form.pwd1.focus();
        return false;
      }
    } else {
      alert("Error: las contraseñas no coinciden!");
      form.pwd1.focus();
      return false;
    }
    return true;
  }
<form method="POST" action="/.../" onsubmit="checkForm(this); return false;">
<p>Usuario: <input type="text" name="username"></p>
<p>Contraseña: <input type="password" name="pwd1"></p>
<p>Confirmar Contraseña: <input type="password" name="pwd2"></p>
<p><input type="submit" value="verificar"></p>
</form>

Проверяет документ:

язык сценариев JavaScript: validaciГіn contraseГ±a с регулярными выражениями и HTML5

0
ответ дан 01.12.2019, 12:41