Как проверить поле формы в jQuery на основе адреса электронной почты домена / TLD? (.com, .net, .edu?) - PullRequest
0 голосов
/ 10 января 2012

Каков был бы наилучший метод, использующий jQuery для проверки поля, чтобы убедиться, что оно заканчивается конкретным TLD? Скажем, я хочу, чтобы оно проверяло поле электронной почты только в том случае, если оно оканчивается на .edu ?

** edit: только что понял, что jQuery имеет свою собственную встроенную проверку, и не уверен, нужен ли мне плагин bassistance ?

1 Ответ

2 голосов
/ 10 января 2012

Я не слишком знаком с этим конкретным плагином, но, похоже, вы сможете расширить его с помощью синтаксиса, подобного следующему:

jQuery.validator.addMethod("emailOrg", function(email_org, element) {
    email_org = email_org.replace(/\s+/g, ""); 
    return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+org$/i.test(email_org);
}, "Please specify a valid .org email");

$("#myform").validate({
  rules: {
    field: {
      required: true,
      emailOrg: true
    }
  }
});

Этот пример будет проверять все электронные письма, заканчивающиеся на orgи никаких других.

...