Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式:如何匹配特定域的列表_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 正则表达式:如何匹配特定域的列表

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

我需要一个正则表达式,它将匹配电子邮件地址中的特定域列表。 我知道这可能不是一个流行的问题,但它是供内部使用的,并且用于有限的电子邮件地址列表。我有10-12个域名,我需要能够匹配

域名不包含子域或点,且后缀始终相同,如:

*@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,它不区分大小写。我希望这能回答你的问题!谢谢我正试着让它变得更好