Javascript 正则表达式:如何匹配特定域的列表
我需要一个正则表达式,它将匹配电子邮件地址中的特定域列表。 我知道这可能不是一个流行的问题,但它是供内部使用的,并且用于有限的电子邮件地址列表。我有10-12个域名,我需要能够匹配 域名不包含子域或点,且后缀始终相同,如:Javascript 正则表达式:如何匹配特定域的列表,javascript,jquery,regex,Javascript,Jquery,Regex,我需要一个正则表达式,它将匹配电子邮件地址中的特定域列表。 我知道这可能不是一个流行的问题,但它是供内部使用的,并且用于有限的电子邮件地址列表。我有10-12个域名,我需要能够匹配 域名不包含子域或点,且后缀始终相同,如: *@onedomain.com *@anotherdomain.com *@thirddomain.com 我试过这样做: /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@(?i)(onedomain|anotherdomain|thirddomain|doma
*@onedomain.com
*@anotherdomain.com
*@thirddomain.com
我试过这样做:
/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@(?i)(onedomain|anotherdomain|thirddomain|domain4)\.com$/
但我得到了这个错误:无效的语法。
有人能帮忙吗?
谢谢。如果问题是关于正则表达式的,您可以尝试以下方法:
/^[\w-\.]+@domain(1|2|3|4)\.com$/
关于正则表达式:我认为语法错误在
(?I)
部分。我真的不知道这个组是干什么的,它是无效的。如果问题是关于正则表达式的,您可以尝试以下方法:
/^[\w-\.]+@domain(1|2|3|4)\.com$/
关于正则表达式:我认为语法错误在
(?I)
部分。我真的不知道这个组是干什么的,它是无效的。如果问题是关于正则表达式的,您可以尝试以下方法:
/^[\w-\.]+@domain(1|2|3|4)\.com$/
关于正则表达式:我认为语法错误在
(?I)
部分。我真的不知道这个组是干什么的,它是无效的。如果问题是关于正则表达式的,您可以尝试以下方法:
/^[\w-\.]+@domain(1|2|3|4)\.com$/
关于正则表达式:我认为语法错误在
(?I)
部分。我真的不知道这个组是用来做什么的,它是无效的。请尝试使用这个正则表达式来匹配@domainX.com:
[A-Za-z0-9!#$%&’*+-/=?^_`\.{|}~]+@domain[1-4]\.com
相配
test@domain1.com
user123@domain4.com
还有更多
编辑
要匹配每个域,请使用此正则表达式:
[A-Za-z0-9!#$%&’*+-/=?^_`\.{|}~]+@([a-z0-9_-]+[\.]?)*
请尝试此正则表达式以匹配@domainX.com:
[A-Za-z0-9!#$%&’*+-/=?^_`\.{|}~]+@domain[1-4]\.com
相配
test@domain1.com
user123@domain4.com
还有更多
编辑
要匹配每个域,请使用此正则表达式:
[A-Za-z0-9!#$%&’*+-/=?^_`\.{|}~]+@([a-z0-9_-]+[\.]?)*
请尝试此正则表达式以匹配@domainX.com:
[A-Za-z0-9!#$%&’*+-/=?^_`\.{|}~]+@domain[1-4]\.com
相配
test@domain1.com
user123@domain4.com
还有更多
编辑
要匹配每个域,请使用此正则表达式:
[A-Za-z0-9!#$%&’*+-/=?^_`\.{|}~]+@([a-z0-9_-]+[\.]?)*
请尝试此正则表达式以匹配@domainX.com:
[A-Za-z0-9!#$%&’*+-/=?^_`\.{|}~]+@domain[1-4]\.com
相配
test@domain1.com
user123@domain4.com
还有更多
编辑
要匹配每个域,请使用此正则表达式:
[A-Za-z0-9!#$%&’*+-/=?^_`\.{|}~]+@([a-z0-9_-]+[\.]?)*
您似乎无法将
(?i)
与javascript正则表达式一起使用
您必须改用/i
修饰符
pattern = new RegExp('^[\w-]+(\.[\w-]+)*@(onedomain|anotherdomain|thirddomain|domain4)\.com$','i')
您似乎无法将
(?i)
与javascript正则表达式一起使用
您必须改用/i
修饰符
pattern = new RegExp('^[\w-]+(\.[\w-]+)*@(onedomain|anotherdomain|thirddomain|domain4)\.com$','i')
您似乎无法将
(?i)
与javascript正则表达式一起使用
您必须改用/i
修饰符
pattern = new RegExp('^[\w-]+(\.[\w-]+)*@(onedomain|anotherdomain|thirddomain|domain4)\.com$','i')
您似乎无法将
(?i)
与javascript正则表达式一起使用
您必须改用/i
修饰符
pattern = new RegExp('^[\w-]+(\.[\w-]+)*@(onedomain|anotherdomain|thirddomain|domain4)\.com$','i')
我知道你需要一个正则表达式解决方案,但是如果域名列表很长,你可能想考虑不要纯在正则表达式中。10-12个域可以构成一个长而讨厌的表达式
相反,您可以使用regex来匹配基本的电子邮件格式,然后保留一个允许的白名单域数组。这样,您就不需要将所有域放入表达式本身function isValidEmail(address) {
var domains = ["onedomain","anotherdomain","thirddomain","domain4"];
// Basic .com email matching
var regex = /^[\w-]+(?:\.[\w-]+)*@(.*)\.com$/i;
var matches = regex.exec(email);
// Assert that address is an .com email address
if (matches === null)
return false;
// return true if domain is in whitelist, false otherwise
return (domains.indexOf(matches[1]) != -1);
}
将
@(.*.\.com
更改为@(.*.{2,})
将使您能够将完整域放入白名单数组中,如果您需要匹配.com
以外的其他域,则必须将域4.com
等放入数组中。我知道您要求一个regex解决方案,但如果域列表很长,您可能想考虑不在ReGEX中完全执行它。10-12个域可以构成一个长而讨厌的表达式
相反,您可以使用regex来匹配基本的电子邮件格式,然后保留一个允许的白名单域数组。这样,您就不需要将所有域放入表达式本身
function isValidEmail(address) {
var domains = ["onedomain","anotherdomain","thirddomain","domain4"];
// Basic .com email matching
var regex = /^[\w-]+(?:\.[\w-]+)*@(.*)\.com$/i;
var matches = regex.exec(email);
// Assert that address is an .com email address
if (matches === null)
return false;
// return true if domain is in whitelist, false otherwise
return (domains.indexOf(matches[1]) != -1);
}
将
@(.*.\.com
更改为@(.*.{2,})
将使您能够将完整域放入白名单数组中,如果您需要匹配.com
以外的其他域,则必须将域4.com
等放入数组中。我知道您要求一个regex解决方案,但如果域列表很长,您可能想考虑不在ReGEX中完全执行它。10-12个域可以构成一个长而讨厌的表达式
相反,您可以使用regex来匹配基本的电子邮件格式,然后保留一个允许的白名单域数组。这样,您就不需要将所有域放入表达式本身
function isValidEmail(address) {
var domains = ["onedomain","anotherdomain","thirddomain","domain4"];
// Basic .com email matching
var regex = /^[\w-]+(?:\.[\w-]+)*@(.*)\.com$/i;
var matches = regex.exec(email);
// Assert that address is an .com email address
if (matches === null)
return false;
// return true if domain is in whitelist, false otherwise
return (domains.indexOf(matches[1]) != -1);
}
将
@(.*.\.com
更改为@(.*.{2,})
将使您能够将完整域放入白名单数组中,如果您需要匹配.com
以外的其他域,则必须将域4.com
等放入数组中。我知道您要求一个regex解决方案,但如果域列表很长,您可能想考虑不在ReGEX中完全执行它。10-12个域可以构成一个长而讨厌的表达式
相反,您可以使用regex来匹配基本的电子邮件格式,然后保留一个允许的白名单域数组。这样,您就不需要将所有域放入表达式本身
function isValidEmail(address) {
var domains = ["onedomain","anotherdomain","thirddomain","domain4"];
// Basic .com email matching
var regex = /^[\w-]+(?:\.[\w-]+)*@(.*)\.com$/i;
var matches = regex.exec(email);
// Assert that address is an .com email address
if (matches === null)
return false;
// return true if domain is in whitelist, false otherwise
return (domains.indexOf(matches[1]) != -1);
}
将
@(.*\.com
更改为@(.*..{2,})
将使您能够将完整域放入白名单数组中,如果您需要匹配.com
以外的其他域,则必须将域4.com
等放入数组中。谢谢。我想让它不区分大小写。@Meek我明白了。要使正则表达式不区分大小写,必须在末尾添加i,如下所示:/pattern/i
。在我的正则表达式中,我使用了\w,它不区分大小写。我希望这能回答你的问题!谢谢我想让它不区分大小写。@Meek我明白了。要使正则表达式不区分大小写,必须在末尾添加i,如下所示:/pattern/i
。在我的正则表达式中,我使用了\w,它不区分大小写。我希望这能回答你的问题!谢谢我想让它不区分大小写。@Meek我明白了。要使正则表达式不区分大小写,必须在末尾添加i,如下所示:/pattern/i
。在我的正则表达式中,我使用了\w,它不区分大小写。我希望这能回答你的问题!谢谢我正试着让它变得更好