Сколько символов @ может быть в адресе электронной почты?
есть ли какое-либо правило для наличия указанного количества символа @ в любом идентификаторе электронной почты. Просто приходите мне на ум, если мы должны проверить, является ли идентификатор электронной почты действительным или не использует PHP.
6 ответов
Если enquoted несколько @
разрешено. Я должен спросить, зачем вам эта информация. Пожалуйста, пожалуйста!--2-->пожалуйста не пытайтесь написать функцию регулярных выражений / или что для проверки emailaddresses. Вам нужно беспокоиться о 3 rfc (и, возможно, 4, Если вы хотите принять во внимание unicode). А ты! .. --4-->будет не и будет свести вас с ума.
П. С.
в случае, если кто-то пропустил мою точку зрения: do не попробуйте придумать какую-то собственную проверку, чтобы проверить emailaddresses самостоятельно "когда-либо".
может быть любое число (в пределах размера адреса электронной почты), за исключением того, что последнее должно быть разделителем между доменным именем и "локальная часть".
Если @
или любые другие "необычные" символы (как определено RFC 5322) существуют в локальной части это должны отображаются в кавычках, e.g:"user@something"@example.com
нет определенного предела на @
символы.
"very.(),:;<>[]\".VERY.\"very@\ \"very\".unusual"@strange.example.com
является допустимым адресом.
см. также страница Википедии на эту тему.
мой реальный вопрос: имеет ли смысл иметь два символа @ в электронном письме?
Как это будет работать?
Я хотел бы использовать filter_var()
С FILTER_VALIDATE_EMAIL
. Ниже приведен пример использования и вывода,
function testemail($email) {
echo "'$email' => ";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
echo "<br />";
}
testemail('');
testemail('myemailsample.com');
testemail('myemail@sample');
testemail('myemail@sample.com');
testemail('myemail@@sample.com');
testemail('myemail@sa@mple.com');
выход
" = > bool (false)
"myemailsample.com' = > bool (false)
'myemail@sample' => bool (false)
"myemail@sample.com' = > строка (18) "myemail@sample.com"
"myemail@@sample.com' = > bool (false)
"myemail@sa@mple.com' = > bool (false)
чтобы проверить действительный адрес электронной почты, я должен использовать функцию filter_var. Он проверит строку и вернет true или false. Вам не нужно думать о регулярных выражениях.
addr-spec-это определенный идентификатор Интернета, который содержит локально интерпретируемая строка, за которой следует символ at-sign ("@", ASCII значение 64), за которым следует интернет-домен. Локально интерпретируемая строка-это либо строка в кавычках, либо точка-атом. Если строка может быть представлена как точка-атом (то есть она не содержит символы, отличные от символов atext или "."в окружении atext символы), затем следует использовать форму dot-atom и кавычки- строка форма не должна использоваться. Комментарии и складные пробелы Не следует использовать вокруг " @ " в спецификации addr.