number - jquery validate rules example
anular la validación de la dirección de correo electrónico del complemento de jquery validate (4)
¡Prueba esto!
jQuery.validator.addMethod("customEmail", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+/.[a-zA-Z]{2,4}$/i.test(value);
}, "Please enter valid email address!");
$(form).validate({
rules: {
email:{
required:true,
customEmail:true
}
}
});
Encuentro que la expresión regular del complemento de validación de jQuery es insuficiente para mi requerimiento. Acepta cualquier dirección de correo electrónico [email protected] como una dirección de correo electrónico válida, mientras que yo quiero poder proporcionar esta expresión regular /^([a-zA-Z0-9_.-+◆)+/@([◆ -Z0-9 -]) +.) + ([A-zA-Z0-9] {2,4}) + $ / para que valide la parte .com completa de la dirección. Me preocupa más poder suministrar mi propia expresión regular que obtener una expresión regular a prueba de tontos (ya que no hay expresiones regulares a prueba de tontos para la validación de correo electrónico)
Solo para su información: También estoy haciendo la validación del lado del servidor, pero en este punto no me preocupa qué dirección de correo electrónico es la correcta.
¿Hay alguna manera de hacerlo dentro de la sección de "reglas" de jQuery validate plugin?
Esta es mi sección de reglas en este momento:
rules: {
email: {
required: {
depends:function(){
$(this).val($.trim($(this).val()));
return true;
}
},
email: true
},
No haría esto, pero por el bien de una respuesta, necesita agregar su propia validación personalizada.
//custom validation rule
$.validator.addMethod("customemail",
function(value, element) {
return /^/w+([-+.'']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/.test(value);
},
"Sorry, I''ve enabled very strict email validation"
);
Luego a sus reglas agregue:
rules: {
email: {
required: {
depends:function(){
$(this).val($.trim($(this).val()));
return true;
}
},
customemail: true
},
Tu expresión regular es simplemente demasiado estricta, jQuery tiene razón.
"this is a valid adress !"@yes.it.is
Le sugiero que lea esto: deje de validar las direcciones de correo electrónico con su Regex complejo
// Add Custom Email Validation
jQuery.validator.addMethod(''customemail'', function (emailaddr, element) {
emailaddr = emailaddr.replace(//s+/g, '''');
return this.optional(element) ||
emailaddr.match(/^/b[A-Z0-9._%-]+@@[A-Z0-9.-]+/.[A-Z]{2,4}/b$/i);
});