我正在使用位于此处的jquery验证功能和插件。 http://docs.jquery.com/Plugins/Validation
我正在使用js文件并且我找到了确保它是有效电子邮件的电子邮件验证块,事情是,我想只允许.edu电子邮件。我不知道从哪里开始。
答案 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,我可以提交任何电子邮件地址,然后发送。