Я ожидаю, что следующее будет работать (у меня нет Angular):
^[a-z0-9._%+-]+@[a-z0-9-]+\.[a-z]{2,4}$
Разница в том, что я удалил .
из разрешенных символов после @
- особенно если учесть, что вы все равно вводите .
перед TLD.
Примечание: ваше регулярное выражение кажется слишком простым даже для неэкзотических c адресов электронной почты. Возможно, вы захотите выполнить поиск по net, чтобы найти «правильные» валидаторы регулярных выражений для адресов электронной почты.