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

Con*_*vey 4 regex forms validation ajax jquery

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

我要去js文件,我发现电子邮件验证块确保它是一个有效的电子邮件,事情是,我想只允许.edu电子邮件.我不知道从哪里开始.

Bro*_*omb 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
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

这是一个jsfiddle,显示它如何一起工作以及错误如何级联.只需按下按钮即可.


Bar*_*ekR 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'
}
Run Code Online (Sandbox Code Playgroud)

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

UPDATE

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

eduEmail3: {
    required: true,
    email: true,
    pattern: /(\.edu\.\w\w)$/
}
Run Code Online (Sandbox Code Playgroud)

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

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

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