【问题标题】:jQuery Form Validation, Only Allow .EDU Email AddressesjQuery 表单验证,仅允许 .EDU 电子邮件地址
【发布时间】:2012-01-30 23:22:27
【问题描述】:

我正在使用位于此处的 jquery 验证功能和插件。 http://docs.jquery.com/Plugins/Validation

我正在浏览 js 文件,我找到了确保它是有效电子邮件的电子邮件验证块,问题是,我只想允许 .edu 电子邮件。我不知道从哪里开始。

【问题讨论】:

    标签: jquery ajax regex forms validation


    【解决方案1】:

    你可以扩展它并添加你自己的规则。

    jQuery.validator.addMethod("edu", function(value, element) {
      // Make it work optionally OR
      //  Check the last 4 characters and ensure they match .edu
      return (this.optional(element) || value.slice(-4) == ".edu"); 
    }, "You must use a .edu email address");
    
    $("#myform").validate({
      rules: {
        field: {
          required: true,
          email: true,
          edu: true
        }
      }
    });
    

    这是一个jsfiddle,展示了它们如何协同工作以及错误如何级联。只需按下按钮。

    【讨论】:

      【解决方案2】:

      您不需要自定义扩展。你可以使用accept()方法:http://docs.jquery.com/Plugins/Validation/Methods/accept#extension

      // input field
      <input type="text" id="eduEmail2" name="eduEmail2" value="abc@123.edu"/>
      
      // validation rule
      eduEmail2: {
          required: true,
          email: true,
          accept: 'edu'
      }
      

      完整示例:http://jsfiddle.net/M5TmU/2/(基于 Brombomb 的 jsfiddle)

      更新

      在 xecute 的评论之后 - 您可以使用自定义正则表达式模式。在additional-methods.js 中,您有“pattern”方法(文件中的最后一个):

      eduEmail3: {
          required: true,
          email: true,
          pattern: /(\.edu\.\w\w)$/
      }
      

      完整示例:http://jsfiddle.net/M5TmU/3/

      当然它并不完美,但仍然 - 你不需要编写自定义方法:)

      附加编辑:国家域名有两个字母,所以\w\w\w? 太多了 - \w\w 应该这样做。我把\w\w\w?留在了小提琴中

      【讨论】:

      • 本地化怎么样? “edu.fr”、“edu.tr”、“edu.ru”、“edu.de”..?他们也是大学生。
      • 正是我想要的。太棒了!
      • 哇,这真是太棒了!
      • @Sparky: 链接还提到:“注意:此方法过去只查看文件名,特别是文件扩展名。该行为现在可用作 src/additional/extension 中的“扩展”方法.js.";在撰写本文时就是这种情况
      【解决方案3】:

      您可能仍会收到来自非 .edu 电子邮件地址的垃圾邮件。

      我建议检查电子邮件域服务器端。

      所以电子邮件必须是 .edu 否则不会邮寄。

      否则,如果我在浏览器中关闭 JavaScript,我可以提交任何电子邮件地址,它会发送。

      【讨论】:

      • 他只是想向人们展示没有.edu扩展名的电子邮件是不允许的。当然,如果你在做JS过滤等,你必须再次控制服务器端。没有服务器端控制,这是不可接受的。
      猜你喜欢
      • 2010-10-11
      • 1970-01-01
      • 2011-01-31
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      相关资源
      最近更新 更多