O código de e-mail de correspondência regular do PHP é analisado com mais detalhes. Espero que amigos que tenham dúvidas sobre isso possam dar uma olhada.
CÓDIGO:
1. <?php
2. if (ereg(“/^[az]([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[- _]?[a-z0-9]+)+[.][az]{2,3}([.][az]{2})?$/i ”,$e-mail)){;
3. echo “Seu endereço de e-mail está correto!”;}
4.outro{
5. echo “Por favor, tente novamente!”;
6.}
7. ?>
O formato do nome de domínio internacional é o seguinte:
O nome de domínio é composto por qualquer combinação de conjuntos de caracteres específicos, letras inglesas, números e "-" (ou seja, hífens ou sinais de menos) em vários países. No entanto, "-" não pode ser incluído no início ou no final, e "-" não pode aparecer continuamente. As letras nos nomes de domínio não diferenciam maiúsculas de minúsculas. O nome de domínio pode ter até 60 bytes (incluindo sufixos .com, .net, .org, etc.).
/^[az]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9 ]+)+[.][az]{2,3}([.][az]{2})?$/i;
/content/i forma uma expressão regular que não diferencia maiúsculas de minúsculas;
^ partida começa
$ Fim da partida
[az] O prefixo de e-mail deve começar com uma letra em inglês
([a-z0-9]*[-_]?[a-z0-9]+)* corresponde a _a_2, aaa11, _1_a_2, mas não corresponde a a1_, aaff_33a_, a__aa. também corresponde, * significa 0 ou mais.
* representa 0 ou mais caracteres anteriores.
[a-z0-9]* corresponde a 0 ou mais letras ou números em inglês
[-_]? Corresponde a 0 ou 1 "-", porque "-" não pode aparecer consecutivamente
[a-z0-9]+ corresponde a 1 ou mais letras ou números em inglês, porque "-" não pode ser usado como final
@ Deve haver um @
([a-z0-9]*[-_]?[a-z0-9]+)+ veja acima ([a-z0-9]*[-_]?[a-z0-9]+)* Explicação, mas não pode estar vazia, + significa um ou mais.
[.] Trate caracteres especiais (.) como caracteres comuns
[az]{2,3} corresponde a 2 a 3 letras em inglês, geralmente com ou net, etc.
([.][az]{2})? Corresponde a 0 ou 1 [.][az]{2} (como .cn, etc.) Não sei se a última parte de .com.cn geralmente é dois dígitos, caso contrário, altere {2} para {número de palavras iniciais, número de palavras finais}
Expressão regular de e-mail perfeita, com explicação detalhada, ajude a testá-la! 2. Extraia o email na string:
<?php
function getEmail($str) {
$padrão = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0 -9]+)+[.][az]{2,3}([.][az]{2})?/i";
preg_match_all($padrão,$str,$emailArr);
return $emailArr[0];
}
$emailstr = " [email protected] Não sou da Mivi, então abri a lista de discussão iid: [email protected] e [email protected] ;.;;, [email protected], [email protected] ";
$emailArr = getEmail($emailstr);
echo "<pré>";
print_r($emailArr);
eco "</pre>";
?>
Imprima da seguinte forma:
Variedade
(
[0] =>[email protected]
[1] =>[email protected]
[2] =>[email protected]
[3] =>[email protected]
[4] =>[email protected]
)
3. Comparação: A regex do segundo não possui ^ e $ no primeiro;