Не потрібно вигадувати велосипед. У PHP є чудова функція filter_var(), яка спеціально призначена для перевірки Email адреси.
Використовуючи регулярний вираз ви не можете наперед бути впевненими у величезній кількості різних варіантів написання поштової скриньки. Наприклад, ваш варіант не пропустить поштову адресу "info@abc-abc.com.ua", хоча вона цілком валідна. Тому, переробивши код, правильний буде:
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo 'Поштова адреса <i>'.mb_substr(htmlspecialchars($email, ENT_QUOTES), 0, 50).'</i> некоректна. Виправте E-mail адресу та спробуйте ще.'; }
Використовуючи регулярний вираз ви не можете наперед бути впевненими у величезній кількості різних варіантів написання поштової скриньки. Наприклад, ваш варіант не пропустить поштову адресу "info@abc-abc.com.ua", хоча вона цілком валідна. Тому, переробивши код, правильний буде: