Así que en mi formulario de registro tengo este campo:
<div class="form-group"> <label for="RegisterModel_Password">Password</label> <input type="password" id="RegisterModel_Password" name="RegisterModel.Password" class="form-control" required="required" minlength="8"/> </div>Como puede ver, estoy usando los atributos de validación de jQuery para garantizar que la contraseña incluya al menos 8 caracteres. Entonces, quiero verificar si la contraseña contiene mayúsculas y números, si no, el campo no es válido. Descargué un método adicional para el complemento jQuery Validation llamado " patrón " y la agregué en la etiqueta principal.
Traté de hacer esto de la siguiente manera, pero no funcionó.
$("#formRegister").validate({ rules: { RegisterModel_Password: { pattern: /^[a-zA-Z][0-9]/ } } });Supongo que el patrón está mal, pero no estoy seguro de si el uso es correcto. Gracias por tu ayuda.
Las cadenas de expresiones regulares son demasiado difíciles para mí (nunca he intentado aprenderlas jajaja). Así que aquí está mi solución:
jQuery.validator.addMethod("passwordCheck", function(value, element, param) { if (this.optional(element)) { return true; } else if (!/[AZ]/.test(value)) { return false; } else if (!/[az]/.test(value)) { return false; } else if (!/[0-9]/.test(value)) { return false; } return true; }, "error msg here");Y simplemente lo uso como un atributo:
<input type="password" id="RegisterModel_Password" name="RegisterModel.Password" class="form-control" required="required" minlength="8" passwordCheck="passwordCheck"/>Gracias por tus respuestas.
Puede agregar su validación personalizada usando $.validator.addMethod() como:
$.validator.addMethod("validation_name", function(value) { // at least 1 number and at least 1 character [^\w\d]*(([0-9]+.*[A-Za-z]+.*)|[A-Za-z]+.*([0-9]+.*)) });