Javascript 5个逗号分隔的电子邮件id的正则表达式
我试图在一个正则表达式中验证5个逗号分隔的电子邮件id。 我经常使用下面的正则表达式Javascript 5个逗号分隔的电子邮件id的正则表达式,javascript,regex,asp.net-mvc,validation,data-annotations,Javascript,Regex,Asp.net Mvc,Validation,Data Annotations,我试图在一个正则表达式中验证5个逗号分隔的电子邮件id。 我经常使用下面的正则表达式 ^([\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4},?)+$ 这对一个电子邮件id有效 我想知道我如何才能做到同样,任何小的投入同样也非常感谢 提前感谢。下面是regex for javaScript,您可以用于多个逗号分隔的电子邮件id,希望这对您有用 /^(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-
^([\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4},?)+$
这对一个电子邮件id有效
我想知道我如何才能做到同样,任何小的投入同样也非常感谢
提前感谢。下面是regex for javaScript,您可以用于多个逗号分隔的电子邮件id,希望这对您有用
/^(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{2,4}\s*?,?\s*?)+$/
下面是regex for javaScript,您可以用于多个逗号分隔的电子邮件id,希望这对您有用
/^(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{2,4}\s*?,?\s*?)+$/
首先,修复模式:
-
在字符类中的两个字符之间形成一个范围。因此,正则表达式的电子邮件部分应该是[-\w+.%]+@[\w-.]+\.[A-Za-z]{2,4}
(注意-
在第一个字符类中的位置,在第二个字符类中,可以将其放在速记字符类\w
和下一个字符之间)
接下来,要匹配1到5封逗号分隔的电子邮件,您需要匹配第一封,然后匹配0到4封电子邮件。并在图案周围添加锚定,以确保图案与整个字符串匹配:
^[-\w+.%]+@[\w-.]+\.[A-Za-z]{2,4}(?:,[-\w+.%]+@[\w-.]+\.[A-Za-z]{2,4}){0,4}$
基本上,^(?:,){0,4}$
:
-字符串的开头^
-您的电子邮件模式
-作为一系列模式的容器的非捕获组的开始:(?:
-逗号,
-您的电子邮件模式
-上面这些序列的出现次数为零到四次){0,4}
-字符串结束$
,
进行拆分,然后验证:
var s=”abc@gg.com,abc2@gg.com,abc3@gg.com,abc4@gg.com,abc5@gg.com";
变量re=/^[-\w+.%]+@[\w-.]+\.[A-Za-z]{2,4}$/;
var项目=s.split(“,”);
如果(items.length首先,修复模式:-
在字符类中的两个字符之间形成一个范围。因此,正则表达式的电子邮件部分应该是[-\w+.%]+@[\w-.]+\.[a-Za-z]{2,4}
(注意-
在第一个字符类中的位置,在第二个字符类中,可以将其放在速记字符类\w
和下一个字符之间)
接下来,要匹配1到5封逗号分隔的电子邮件,您需要匹配第一封,然后匹配0到4封电子邮件。并在模式周围添加锚,以确保模式匹配整个字符串:
^[-\w+.%]+@[\w-.]+\.[A-Za-z]{2,4}(?:,[-\w+.%]+@[\w-.]+\.[A-Za-z]{2,4}){0,4}$
基本上,^(?:,){0,4}$
:
^
-字符串的开头
-您的电子邮件模式
(?:
-作为一系列模式的容器的非捕获组的开始:
,
-逗号
-您的电子邮件模式
){0,4}
-上面这些序列的出现次数为零到四次
$
-字符串结束
另一种方法是使用,
进行拆分,然后验证:
var s=”abc@gg.com,abc2@gg.com,abc3@gg.com,abc4@gg.com,abc5@gg.com";
变量re=/^[-\w+.%]+@[\w-.]+\.[A-Za-z]{2,4}$/;
var项目=s.split(“,”);
如果(items.length显示一些有效和无效的示例可能的副本您确定您的正则表达式用于电子邮件吗?它似乎是一个电话号码。sa@gmail.com,a@gmail.com这样我只能添加5个有效的电子邮件Id。sa@gamil.com,sa@gamil.com像泰语一样,我添加6个或更多的电子邮件Id无效。你不应该同时验证所有电子邮件地址同时,很难向用户显示错误。将数据拆分为数组
,然后验证每封电子邮件和数组。prototype.length
值。'abc@bca.ab,abc@bca.cab,aaabc@bca.ab,abc@bca.ab'.split(',').map(验证器);
显示一些有效和无效的示例可能的副本您确定您的正则表达式用于电子邮件吗?它似乎是一个电话号码。sa@gmail.com,a@gmail.com这样我只能添加5个有效的电子邮件Id。sa@gamil.com,sa@gamil.com像泰语一样,我添加6个或更多电子邮件Id无效。你不应该同时验证所有电子邮件地址,很难向用户显示问题所在。请将数据拆分为数组
,然后验证每封电子邮件和数组.prototype.length
值。'abc@bca.ab,abc@bca.cab,aaabc@bca.ab,abc@bca.ab'.split(',').map(验证器)
工作正常,但我希望atmost 5电子邮件输入。1电子邮件id输入也有效。但6电子邮件输入无效。因此,我最初的假设是有效的。我已将答案还原为我最初发布的内容。工作正常,但我希望输入atmost 5电子邮件id。我输入3或4电子邮件id也有效。但6电子邮件id输入无效。我已修复我现在已经修改了JS解决方案。如果手机号码使用regex,我可以这样做吗?它可以工作,但我需要atmost 5电子邮件输入。1电子邮件id输入也有效。但6电子邮件输入无效。因此,我最初的假设是有效的。我已将答案还原为我最初发布的内容。它工作正常,但我想输入atmost 5电子邮件id。我输入3或4 em所有id也是有效的。但是输入6个电子邮件id无效。我现在已经修复了JS解决方案。如果手机号码使用正则表达式,我可以这样做吗?这个正则表达式也会匹配。它也没有优化,因为[.-]
匹配一个点或-
线性匹配,而(\.\124;-)
将导致回溯。此外,它匹配超过5封逗号分隔的电子邮件。是的,我知道我在下面解释了regex for javaScript,您可以用于多个逗号分隔的电子邮件id,希望这项工作对您来说此regex也会匹配。它也没有优化,因为[.-]
与点或-
线性匹配,而(\.|-)
将导致回溯。此外,它匹配超过5封逗号分隔的电子邮件。是的,我知道我在下面解释了用于javaScript的正则表达式,您可以用于多个逗号分隔的电子邮件id,希望这对您有用