【发布时间】:2012-01-30 23:22:27
【问题描述】:
我正在使用位于此处的 jquery 验证功能和插件。 http://docs.jquery.com/Plugins/Validation
我正在浏览 js 文件,我找到了确保它是有效电子邮件的电子邮件验证块,问题是,我只想允许 .edu 电子邮件。我不知道从哪里开始。
【问题讨论】:
标签: jquery ajax regex forms validation
我正在使用位于此处的 jquery 验证功能和插件。 http://docs.jquery.com/Plugins/Validation
我正在浏览 js 文件,我找到了确保它是有效电子邮件的电子邮件验证块,问题是,我只想允许 .edu 电子邮件。我不知道从哪里开始。
【问题讨论】:
标签: jquery ajax regex forms validation
你可以扩展它并添加你自己的规则。
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,展示了它们如何协同工作以及错误如何级联。只需按下按钮。
【讨论】:
您不需要自定义扩展。你可以使用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 电子邮件地址的垃圾邮件。
我建议检查电子邮件域服务器端。
所以电子邮件必须是 .edu 否则不会邮寄。
否则,如果我在浏览器中关闭 JavaScript,我可以提交任何电子邮件地址,它会发送。
【讨论】: