jQuery表单验证,仅允许.EDU电子邮件地址

时间:2011-12-31 05:36:58

标签: jquery ajax regex forms validation

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

我正在使用js文件并且我找到了确保它是有效电子邮件的电子邮件验证块,事情是,我想只允许.edu电子邮件。我不知道从哪里开始。

3 个答案:

答案 0 :(得分:7)

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

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,展示了它们如何协同工作以及错误如何级联。只需按下按钮。

答案 1 :(得分:6)

您不需要自定义扩展程序。您可以使用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?留在了小提琴里

答案 2 :(得分:0)

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

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

因此,电子邮件必须是.edu或不会邮寄。

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