эй, взаимоуважатели, заместо ругаться, не плодите дезинформацию другим детям, а исправляйте: /[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i
этот регексп нерабочий, причем жёстко.
Дайте ему вот это:
Vasiliy.Lokhankin@my.mail-zanzibar.info
он не примет, а мыло корректное.
а это примет:
----paraboloid@my.Fu@#$%$%^*mail.com=Wrong@!
просто он зацепится не с начала и не до конца строки, да и точка в регекспе выше в среднем []-блоке позволяет быть любым символам, так что ой.
Где-то так, вобщем:
1. во втором блоке так точка не отрицается (если я правильно понял неправильный ход мыслей... sic!) - а если неправильно - то причём там крышка (^)? Отрицается любой символ? Гы. Даже если бы работала эта конструкция (отрицание со средины регекспа), то... Впрочем, "на этом мысль останавливается".
2. Если убрать точку ("всё подряд") в среднем блоке - матч сработает только на доменах 2го уровня. Да и то на 2-3 буквенных в конце (а где инфо? моби? нейм? етц...) - правда, это достаточно свежий апдейт, но от этого регесп не стаёт рабочим.
3. нет ограничения у регекспа по бокам. То есть он может СОВПАСТЬ внутри строки, которая будет окружена мусором.
4. в емейле в имени может быть точка, и точка!
5. с какой радости подчеркивания пошли в домены, и где дефисы в доменах?
т.е. если исправить эти "сам умею сочинил" в "и я сам умею сочинил-2", то выйдет:
/^[0-9a-z\-\._+]+@(?:[0-9a-z\-]+\.)+[a-z]+$/i
но и достоверность этого сомнительна - в RFC сначала надо прочитать стандарты, чем умничать. Например, формат имени в емейле более широкий, чем у домена - и могут быть ещё разрешённые символы (подчеркивание, плюс, ещё что-то, да и то по разным стандартам по-разному).
Кроме того этот регексп не подтвердит правильность емейлов:
"Василий Квасилий" <kvasil@mail.ru>
хотя оно корректно, и
"MyOldMail:<i@be.there>" <big@but.very.small.com>
а вдруг ещё кавычки могут быть вложеные, заслешованые ;-)
так что писать и читать книжечки ещё придётся.
Мудрость, она как и тупость, безгранична - накапливать можно вечно ;).