Override jquery проверка правильности адреса электронной почты для плагина
Я считаю, что регулярное выражение плагина проверки jQuery недостаточно для моего требования. Он принимает любой адрес электронной почты [email protected] в качестве действительного адреса электронной почты, тогда как я хочу иметь возможность предоставить это регулярное выражение /^([a-zA-Z0-9_.-+])+\@(([a-zA -Z0-9 -]) +.) + ([A-zA-Z0-9] {2,4}) + $/, чтобы он подтвердил полную .com часть адреса. Я больше обеспокоен тем, что могу предоставить собственное регулярное выражение, чем получать регулярное выражение с дураком (поскольку для проверки правильности электронной почты нет регулярного выражения для проверки подлинности)
Просто FYI: я также выполняю проверку на стороне сервера, но на данный момент я не беспокоюсь о правильном правиле адреса электронной почты.
Есть ли способ сделать это в разделе "правила" модуля проверки правильности jQuery?
Это мой раздел правил прямо сейчас:
rules: {
email: {
required: {
depends:function(){
$(this).val($.trim($(this).val()));
return true;
}
},
email: true
},
Ответы
Ответ 1
Я бы этого не сделал, но ради ответа вам нужно добавить свою собственную проверку.
//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"
);
Затем к вашим правилам добавьте:
rules: {
email: {
required: {
depends:function(){
$(this).val($.trim($(this).val()));
return true;
}
},
customemail: true
},
Ответ 2
Ваше регулярное выражение просто слишком строгое, jQuery прав.
"this is a valid adress !"@yes.it.is
Я предлагаю вам прочитать следующее: Остановить проверку адресов электронной почты с помощью своего сложного регулярного выражения
Ответ 3
// 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._%-][email protected]@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i);
});