javascript - 如何根据电子邮件地址域/TLD 验证 jQuery 中的表单字段? (.com、.net、.edu?)

标签 javascript jquery html forms validation

使用 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/

相关文章:

javascript - 如何使用 Google Chrome 开发者工具查看特定的函数调用及其参数?

javascript - 我可以在 Google Loader 运行后运行 JavaScript 函数吗?

html - Sharepoint 上的 td html5 之间的边距

javascript - 在 HTML 和 Javascript 中创建和更新图表

javascript - 为什么用 javascript 创建的文本框显示不同?

javascript - 带有自定义 ListItem 的 NestedList

javascript - 如何打印身份证

javascript - 将 window.getSelection().extentOffset 引用到某个 HTML 元素

javascript - 显示 div 列表的更多/更少按钮

javascript - 是否可以根据用户的地理位置替换网页中的图像?