PHP-код регулярного соответствия электронной почты анализируется более подробно. Я надеюсь, что друзья, у которых есть вопросы по этому поводу, смогут взглянуть на него.
КОД:
1. <?php
2. if (ereg("/^[az]([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[- _]?[a-z0-9]+)+[.][az]{2,3}([.][az]{2})?$/i »,$email)){
3. echo «Ваш адрес электронной почты верен!»;}
4.еще{
5. эхо «Пожалуйста, попробуйте еще раз!»;
6. }
7. ?>
Международный формат доменного имени следующий:
Доменное имя состоит из любой комбинации определенных наборов символов, английских букв, цифр и «-» (т. е. дефисов или знаков минус) в разных странах. Однако «-» не может быть включен в начало или конец, а «-» не может быть включен в начало или конец. не может появляться постоянно. Буквы в доменных именах не чувствительны к регистру. Доменное имя может иметь длину до 60 байт (включая суффиксы .com, .net, .org и т. д.).
/^[az]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9 ]+)+[.][az]{2,3}([.][az]{2})?$/i;
/content/i формирует регулярное выражение без учета регистра;
^ начало матча
$ Конец матча
[az] Префикс электронной почты должен начинаться с английской буквы
([a-z0-9]*[-_]?[a-z0-9]+)* соответствует _a_2, aaa11, _1_a_2, но не соответствует a1_, aaff_33a_, a__aa. Если это нулевой символ, он будет соответствовать. также соответствует, * означает 0 или более.
* представляет собой 0 или более предшествующих символов.
[a-z0-9]* соответствует 0 или более английским буквам или цифрам
[-_] Соответствует 0 или 1 "-", поскольку "-" не может появляться последовательно
[a-z0-9]+ соответствует 1 или более английским буквам или цифрам, поскольку "-" не может использоваться в качестве конца
@ Должен быть один @
([a-z0-9]*[-_]?[a-z0-9]+)+ см. выше ([a-z0-9]*[-_]?[a-z0-9]+)* Пояснение, но оно не может быть пустым, + означает одно или несколько.
[.] Обрабатывать специальные символы (.) как обычные символы.
[az]{2,3} соответствует 2–3 английским буквам, обычно com или net и т. д.
([.][az]{2})? Соответствует 0 или 1 [.][az]{2} (например, .cn и т. д.) Я не знаю, соответствует ли последняя часть .com.cn обычно это две цифры, если нет, замените {2} на {количество начальных слов, количество конечных слов}
Идеальное регулярное выражение для электронной почты с подробным объяснением. Пожалуйста, помогите протестировать его! 2. Извлеките письмо из строки:
<?php
функция getEmail($str) {
$pattern = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0 -9]+)+[.][az]{2,3}([.][az]{2})?/i";
preg_match_all($pattern,$str,$emailArr);
вернуть $emailArr[0];
}
$emailstr = " [email protected] Я не из Mivi, поэтому открыл список рассылки iid: [email protected] и [email protected] ;.;;, [email protected], [email protected] ";
$emailArr = getEmail($emailstr);
эхо "<pre>";
print_r ($ emailArr);
эхо "</pre>";
?>
Распечатайте следующим образом:
Множество
(
[0] =>[email protected]
[1] =>[email protected]
[2] =>[email protected]
[3] =>[email protected]
[4] =>[email protected]
)
3. Сравнение: регулярное выражение во втором не имеет ^ и $ в первом;