gpt4 book ai didi

javascript - jQuery 表单验证,仅允许 .EDU 和 .edu.nn(其中 nn 是 2 位国家/地区代码)电子邮件地址

转载 作者:行者123 更新时间:2023-12-03 11:06:58 26 4
gpt4 key购买 nike

我使用此方法进行了 .edu 电子邮件验证 - jQuery Form Validation, Only Allow .EDU Email Addresses

但我不想只使用 .edu 或 .edu.nn(其中 nn 是 2 位国家/地区代码),而是希望将两者包含在一个中。不知道如何实现这一目标。以下是同时接受 .edu 和 .edu.fr 的代码 - 我需要接受除 .edu 之外的所有其他 2 位国家/地区代码

感谢您的帮助!

$.validator.addMethod("edu", function (value, element, param) {
// Make it work optionally OR
// Check the last 4 and 7 characters and ensure they match .edu and .edu.2-digit-country-code
return (this.optional(element) || value.slice(-4) == ".edu" || value.slice(-7) == ".edu.fr");
}, "Please enter valid .edu email address");

$("#requestform").validate({
rules: {
email: {
required: true,
email: true,
edu: true
},
}
});

最佳答案

由于 .slice() 的性能不如同时检查两种可能性,因此使用带有可选标志的 RegExp 会更快:

此正则表达式将匹配这两个条件:

var regex =/\.edu(\.[a-z]{2})?$/

在这里查看它在 REPL 中的工作情况:

> regex.test('somename.edu')
true
> regex.test('emai.com')
false
> regex.test('email.edu.cz')
true

那么你的验证器函数将像这样小:

$.validator.addMethod("edu", function (value, element, param) {
// Make it work optionally OR
// Check the last 4 and 7 characters and ensure they match .edu and .edu.2-digit-country-code
return (value.match(/\.edu(\.[a-z]{2})?$/));
}, "Please enter valid .edu (or .edu.NN) email address");

这是另一个测试您的 RegExp 的网站:http://regexpal.com/

另外,这里是我使用的 RegExp 语法的一些解释:

x?:表示匹配 x 0 次或多次(实际上 x 是可选的)

x{N}:表示精确匹配xN次(用于精​​确匹配2个字母a-z)

$:表示匹配“输入结束”(否则 someacct.edu.fr@gmail.com 也会匹配)

希望对你有帮助

关于javascript - jQuery 表单验证,仅允许 .EDU 和 .edu.nn(其中 nn 是 2 位国家/地区代码)电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27807395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com