使用 jQuery 验证字段以确保其以特定 TLD 结尾的最佳方法是什么?假设我希望它仅验证以 .edu 结尾的电子邮件字段?
**编辑:刚刚意识到 jQuery 有它自己的内置验证,不确定我是否需要 bassistance plugin ?
最佳答案
我不太熟悉那个特定的插件,但看起来你应该能够使用如下语法扩展它:
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 结尾的电子邮件,而不验证其他电子邮件。
关于javascript - 如何根据电子邮件地址域/TLD 验证 jQuery 中的表单字段? (.com、.net、.edu?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8797022/