我正在使用此正则表达式验证一个电子邮件。如何一次验证文本框或文本区域中的多个电子邮件地址使用php
/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/
如何验证多个电子邮件地址在文本框或文本区域用逗号(,)和分号(;)使用PHP在时间上分开。
例如:ABAC @ gmail.com,ABCD的@ gmail.com; abcede @ gmail.com,ACF @ in.com
我正在使用此正则表达式验证一个电子邮件。如何一次验证文本框或文本区域中的多个电子邮件地址使用php
/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/
如何验证多个电子邮件地址在文本框或文本区域用逗号(,)和分号(;)使用PHP在时间上分开。
例如:ABAC @ gmail.com,ABCD的@ gmail.com; abcede @ gmail.com,ACF @ in.com
$emails = preg_split('[,|;]',$_POST['emails']);
foreach($emails as $e){
if(preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',trim($e)) == 0){
echo($e ."is not a valid email address");
}
}
应该打破你收到的电子邮件到电子邮件的数组。然后将通过每封电子邮件并检查正则表达式。输出该电子邮件无效,因为它发现它们。如果电子邮件无效,请随意将代码替换为代码执行的任何内容。 编辑:打破逗号和分号
编辑:正则表达式已更改。 (对不起,我还没有发布之前,检查它。)
好,这里是如何将正则表达式转换成匹配的东西列表的HOWTO:validate comma separated list using regex
简单的方法是分手了你的字符串,然后验证每个条目(无论是不精确的,如逗号的地址实际上是允许的):
$list = str_getcsv($emails); // or preg_split on commas
foreach ($list as $mail) {
if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
return false;
}
}
或者你使用Using a regular expression to validate an email address和交换的最后一行(?&address)/x
为:
^\s* (?&address) (\s*,\s* (?&address))* \s* $ /x
我认为首先你需要从文本中提取所有的电子邮件模式,然后验证它们。 – Arfeen 2011-12-23 07:40:37
如果可用,请使用['mailparse_rfc822_parse_addresses()'](http://php.net/mailparse_rfc822_parse_addresses)。否则,将逗号分隔列表,修剪并验证每个列表条目(使用不符合的正则表达式或'filter_var(..,FILTER_VALIDATE_EMAIL)')。 – mario 2011-12-23 07:42:22
因此...拒绝其中包含“+”的电子邮件地址,以及任何来自“.info”或“.museum”TLD的电子邮件地址。这个正则表达式更糟,那么大多数尝试检查电子邮件地址。 – Quentin 2011-12-23 08:52:34