регулярное выражение для проверки email java

Проверка электронной почты Java – регулярное выражение электронной почты java

Проверка электронной почты Java, регулярное выражение электронной почты java, проверка адреса электронной почты java, регулярное выражение электронной почты java, регулярное выражение проверки электронной почты java, проверка электронной почты java пример простого кода

Сегодня мы рассмотрим программу проверки электронной почты java. Иногда нам приходится проверять адрес электронной почты, и для этого мы можем использовать регулярное выражение электронной почты. В последнем посте я подробно рассказал о регулярном выражении java с некоторыми примерами. В этом примере из реальной жизни я пытаюсь проверить адреса электронной почты с помощью регулярного выражения java.

Проверка электронной почты Java

Еще одна важная вещь, которую следует отметить, заключается в том, что адреса электронной почты не учитывают регистр. Поэтому мы будем использовать флаг без учета регистра для создания объекта шаблона.

Пример допустимых адресов электронной почты

Принимая все это во внимание, некоторые действительные адреса электронной почты являются:

Пример недопустимых адресов электронной почты

Теперь давайте посмотрим, какие недействительные адреса электронной почты являются причиной их недействительности.

Java-Программа Регулярных Выражений Электронной Почты

Поэтому, используя всю информацию для проверки электронной почты на java, я написал класс EmailValidator, который можно использовать для проверки адреса электронной почты с помощью регулярного выражения.

Вывод приведенного выше примера программы проверки электронной почты java показан на рисунке ниже.

Таким образом, похоже, что наша java-программа для регулярных выражений электронной почты работает должным образом, вы можете легко расширить ее, если хотите добавить еще несколько специальных символов. Это все о примере проверки электронной почты java.

Источник

Примеры регулярных выражений электронной почты Java

В этой статье показано, как использовать регулярное выражение для проверки электронной почты на Java.

В этой статье будет показано несколько способов проверки адреса электронной почты с помощью регулярного выражения:

1. Регулярное выражение Электронной Почты – Простая проверка.

Объяснение регулярного выражения электронной почты:

1.1 Пример Java, использующий приведенное выше регулярное выражение для проверки электронной почты.

1.2 Ниже приведен модуль 5 модульных тестов для проверки некоторых действительных и недействительных электронных писем.

Приведенное выше регулярное выражение электронной почты мало что проверяло и фильтровало только странные или недействительные электронные письма. Кроме того, точка соответствует интернационализации или адресу электронной почты в Юникоде.

2. Регулярное выражение Электронной Почты – Строгая проверка.

Это регулярное выражение электронной почты немного сложное и отвечает следующим требованиям к электронной почте:

В электронной почте локальная часть много специальных символов, таких как #$%&’*+-/=? являются технически допустимыми, но большинство почтовых серверов или веб-приложений не принимают их все. Это регулярное выражение электронной почты принимает только общую точку (.), подчеркивание (_) и дефис (-).

Ниже приведены примеры действительных адресов электронной почты.

Ниже приведены примеры недействительных адресов электронной почты.

Еще раз просмотрите регулярное выражение электронной почты.

Объяснение регулярного выражения по электронной почте.

2.1 Пример Java, использующий приведенное выше регулярное выражение для проверки электронной почты.

2.2 Модульные тесты.

Примечание Пожалуйста, не ставьте слишком строгие требования к проверке электронной почты, так как это приведет к отклонению многих действительных писем. Эта строгая версия регулярного выражения электронной почты является хорошим балансом того, что в большинстве случаев считается действительным электронным письмом.

P.S. Эта строгая версия регулярного выражения электронной почты не поддерживает Юникод.

3. Регулярное выражение электронной почты – Нелатинские символы или символы Юникода

Примеры адресов электронной почты в Юникоде

Приведенное ниже регулярное выражение обновило предыдущую строгую версию регулярного выражения электронной почты, заменив A-Za-z на \\p для поддержки адреса электронной почты в Юникоде.

3.1 Проверка регулярного выражения электронной почты Java, версия в Юникоде.

3.2 Модульные тесты.

4. Валидатор Apache Commons – Электронная почта

На этот раз мы тестируем Валидатор Apache Commons для проверки адреса электронной почты.

P.S Размер файла Размер файла составляет около 190 КБ.

Внутренне, commons-валидатор смешанное использование пользовательского кода и регулярного выражения для проверки адреса электронной почты.

4.1 Проверка электронной почты Java с помощью средства проверки Apache Commons.

4.2 Модульные тесты.

, даже символы Юникода, и соответствует общим рекомендациям по электронной почте, которые определены в примере 2. Если вы не возражаете включить дополнительную библиотеку объемом 190 КБ для проверки электронных писем, этот commons-валидатор является хорошим выбором.

Скачать Исходный Код

$cd java-регулярное выражение/электронная почта

Источник

Электронная почта Java regex

прежде всего, я знаю, что использование regex для электронной почты не рекомендуется, но я должен проверить это.

у меня есть это регулярное выражение:

в Java, я сделал это:

однако регулярное выражение не выполняется независимо от того, сформировано ли электронное письмо или нет. «Найти и заменить» внутри Eclipse отлично работает с тем же регулярным выражением.

16 ответов

FWIW, вот код Java, который мы используем для проверки адресов электронной почты. Regexp очень похожи:

работает достаточно надежно.

вот rfc822 совместимое регулярное выражение, адаптированное для Java:

регулярное выражение берется из этого поста:Mail:: RFC822:: адрес: проверка адреса на основе regexp. Результаты должны совпадать с онлайн-версия.

нет. у вас никогда не будет действительного выражения.

например, это все действительные адреса электронной почты:

просто чтобы упомянуть несколько проблем:

прежде чем даже начать проверять соответствующие RFCs

это потому, что вы забываете нечувствительность к регистру:

Это соответствует вашему примеру, хотя это не действительный адрес электронной почты.

еще одна простая альтернатива для проверки 99% писем

вы можете использовать этот метод для проверки адреса электронной почты в Java.

общий формат электронной почты (RE), которые включают также домен, как co.in, co.Великобритания, com, outlook.com etc.

и правило говорит, что :

(точка, точка, точка) при условии, что она не является первой или последней характера, а также при условии, что он не появляется два или более раз последовательно.

Это является допустимым регулярное выражение для проверки электронной почты. Он полностью совместим с RFC822 и принимает IP-адрес и имена серверов (для интрасети).

вот несколько примеров вывода, когда вы вызываете isEmailValid(emailVariable) :

регулярное выражение : ^[\w!#$%&’*+/=?

если вы хотите разрешить не латинские символы, это работает довольно хорошо для меня.

это не позволяет IP после@, но наиболее действительной электронной почты в от xxx@xxx.TDL может быть проверено с его помощью. \p проверяет UTF-буквы и \p проверяет UTF-номера. Вы можете проверить этот документ для получения дополнительной информации.

регулярное выражение для Facebook-подобной проверки:

Dto для модульных тестов (с Ломбоком):

действительные / недействительные письма ниже с модульными тестами:

попробуйте следующий код для электронной почты в формате

Я пытался скрыть максимально широко используется email id’s validation этим выше проиллюстрировано regex и все работает.

если вы все еще знаете некоторые последовательно используемые email id’s остались здесь, Пожалуйста, дайте мне знать в разделе комментариев!

это регулярное выражение для соответствия действительным адресам электронной почты.

Источник

Java email regex examples

By mkyong | Last updated: November 2, 2020

Viewed: 734,889 (+646 pv/w)

java email

The formal definitions of an email address are in RFC 5322 and RFC 3696. However, this article will not follow the above RFC for email validation. The official email «local-part» is too complex (supports too many special characters, symbols, comments, quotes…) to implement via regex. Most companies or websites choose only to allow certain special characters like dot (.), underscore (_), and hyphen (-).

This article will show a few ways to validate an email address via regex:

1. Email Regex – Simple Validation.

This example uses a simple regex ^(.+)@(\S+)$ to validate an email address. It checks to ensure the email contains at least one character, an @ symbol, then a non whitespace character.

Email regex explanation:

1.1 A Java example using the above regex for email validation.

1.2 Below is a JUnit 5 unit tests to test some valid and invalid emails.

The above email regex didn’t check much and filter only the weird or invalid emails. Furthermore, the dot matches the internationalization or Unicode email address.

2. Email Regex – Strict Validation.

This email regex is a bit complex and meets the following email requirements:

Below are samples of valid email addresses.

Below are samples of invalid email addresses.

Revisit the email regex again.

Email regex explanation.

2.1 A Java example using the above regex for email validation.

Note
Please do not put too strict on the email validation as it will reject many valid emails. This email regex strict version is a good balance of what is considered a valid email in most cases.

P.S. This email regex strict version does not support Unicode.

3. Email Regex – Non-Latin or Unicode characters

For regex to support internationalization or Unicode or non-Latin email addresses, try to replace the character match A-Za-z with a \p . Read this Unicode Regular Expressions.

Samples of Unicode email addresses

Below regex updated the previous email regex strict version by replacing the A-Za-z with \\p to support Unicode email address.

3.1 Java email regex validation, Unicode version.

4. Apache Commons Validator – Email

This time we test the Apache Commons Validator to validate an email address.

P.S The file size of the commons-validator-1.7.jar is around 190KB.

Internally, the commons-validator mixed-use of custom code and regex to validate an email address.

4.1 Java email validation using Apache Commons Validator.

, even the Unicode characters, and meets the general email guidelines which defined in example 2. If you don’t mind to include an extra 190KB library to validate emails, this commons-validator is a good choice.

P.S This commons-validator is not fully compliant with the RFC 5322 or RFC 3696.

Note

If you are interested in what an RFC822 email regex looks likes, please visit this RFC822 : regexp-based address validation.

Download Source Code

References

mkyong

Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

I tried this code with “email@goes_here.com” and it was deemed invalid. I guess it’s because of the underscore.

Is this valid to have an underscore in the email’s domain?

It is not possible to validate an emailadress with a regular expression in the general case. The only way to validate an emailadress is to send a mail and wait for a response.
The best you can do with a regexp is to validate that the syntax is correct as defined in rfc2822 but the regexp that covers that is about one page long and much more complicated than your example. To make matters worse only a few syntactically correct emailadresses actually have someone or something that receives mail on it.

My advice is that if you have to check that someone gives you an emailadress do not try to hard. Make do with checking for an @-sign and perhaps at least one dot in the domain (this of course forbids uucp-style adresses) or even that the length of the string is large enough to be able to contain an email adress.

OK, this is a nice exercise to play around with but do not under any circumstances use it in a real world application!
Sorry for the rant but I have seen too many that uses these simplistic measures to validate webforms and unknowingly forbids people to contact them because their emailadresses contains “strange” characters.

Источник

Веб-заметки и Веб-подсказки

Регулярные выражения для проверки e-mail, URL и номера телефона

Поскольку, очень часто приходится использовать такие шаблонные регулярные выражения, я решил сделать о них заметку, чтобы они были всегда под рукой:

Регулярное выражение для проверки корректности e-mail
(пример: «nick@mail.com»):

^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]<2,6>$

Регулярное выражение для проверки корректности URL
(пример: «http://www.my-site.com»):

^((https?|ftp)\:\/\/)?([a-z0-9]<1>)((\.[a-z0-9-])|([a-z0-9-]))*\.([a-z]<2,6>)(\/?)$

Регулярное выражение для проверки корректности номера телефона
(пример: «+38(044)555-55-55»):

^\+\d<2>\(\d<3>\)\d<3>-\d<2>-\d<2>$

Пример использования на JavaScript:

function isValidPhone(myPhone) <
return /^\+\d<2>\(\d<3>\)\d<3>-\d<2>-\d<2>$/.test(myPhone);
>

32 комментария на «Регулярные выражения для проверки e-mail, URL и номера телефона»

Спасибо автору!
Хоть кто-то догадался всё в одну кучу собрать, чтоб не искат по сто раз.
В закладки! :-)

Говорят, домены могут быть до 6 символов ( <2,4>вместо <2,6>)

ОЧЕНЬ ПОЛЕЗНЫЙ МАТЕРИАЛ ОЧЕНЬ МНЕ ПОМОГ

А у вас самих на сайте какой regexp используется? Т. к. указанный мыло вида _@a_._.ru и сайт вида 8-.ru и a.ru пропускает (на сервере тестил)

С точки зрения данных регулярных выражений приведенные примеры являются корректными.
Если они не покрывают Ваши нужды, Вы можете всегда их подкорректировать.

Регулярное выражение для проверки корректности URL допускает варианты http://www.my-site………………………………….com
Для исключения этих вариантов необходимо вместо ([a-z0-9-.]*) написать ((\.[a-z0-9-])|([a-z0-9-]))* т.е точка + любой символ из набора либо любой символ из набора.

Спасибо за существенное конструктивное замечание, испавил.

Спасибо большое, это то что я искал!

Для url у меня почему-то не срабатывает для адреса вида http://www.mail.ru/ к примеру

Не работало из-за слэша «/» в конце проверяемого адреса.
Добавил в конце регулярного выражения «(\/?)», теперь работает и с ним.

Регулярка рабочая почти во всех случаях!

Проверку имейла не проходит например такой:
support@wb-concept.com.ua

Проходит.
Перепроверьте пожалуйста:
/^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]<2,4>$/.test(«support@wb-concept.com.ua»)
// true

подтверждение существования 6-символьных доменов: http://ru.webcams.travel/
somename@somesubdomain.travel не пройдет уже
поправьте на:
/^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]<2,6>$/
понимаю, что случай редкий, однако, мало ли..

А как проверить, чтобы в поле для телефона не спамили иносранцы, а то пишут туда латинские буквы, а надо, чтобы поле для телефона пропускало лишь цифры, пробелы, тире и плюс в любом порядке, лишь бы латинские не пропускало и кириллицу тоже. Спасибо.

Подумал сам, и вот примерно так:
^[+]<0,1>[- (),0-9]<7,>$

Спасибо долго искал качественные регулярные выражения

Ругелярка для URL, работает только для разбора домена.
Если например нужно разобрать путь к картинке http://yandex.st/morda-logo/i/logo.png
то лучше:
^(https?|ftp)\:\/\/[a-zA-Z0-9\.\-]+\.[a-z]<2,>(\/.+)$
(лишние «карманы» почистил)

не лучше ли (\w+@[a-zA-Z_]+?\.[a-zA-Z]<2,6>) для email

Max : » не лучше ли (\w+@[a-zA-Z_]+?\.[a-zA-Z]<2,6>) для email »

нет не лучше. примеры которые ваш шаблон не пропускает

и т.д.
абсолютно реальные адреса

Данные регулярные выражения для проверки почты не актуальны, т.к. не учитывают русскоязычные домены.

Номер телефона — код страны у Вас обязательно 2 символа. На самом деле может быть от 1 до 4. Например через Ваш шаблон не пройдет код России +7 и Украины +380.

Всё-же для URL, наверное, будет лучше
^((https?|ftp)\:\/\/)?([a-z0-9]<1>)((\.[a-z0-9-])|([a-z0-9-]))*([a-z0-9]<1>)\.([a-z]<2,6>)(\/?)$
а то пропускает ссылки типа mail-.ru

В конечном счёте пришёл к такому регулярному выражению для проверки корректности URL (если используются только латинские буквы):
^((https?|ftp)\:\/\/)?([a-z0-9]+([-]*[a-z0-9]*)*[a-z0-9]+)(\.[a-z0-9]+([-]*[a-z0-9]*)*[a-z0-9]+)*\.([a-z]<2,6>)(\/?)$
Из требований, предъявляемых к собственному обозначению доменных имён:
1) содержать не менее двух символов;
2) содержать не более 63 символов;
3) начинаться и заканчиваться буквой или цифрой;
4) не содержать символов, отличных от букв, цифр и дефиса (допустимыми буквами
являются буквы латинского алфавита; прописные и строчные буквы не
различаются);
5) не содержать одновременно дефисы в 3-й и 4-й позициях

реализована проверка корректности собственного обозначения доменного имени любого уровня для пунктов 1,3,4
и не реализована для пунктов 2 и 5.

Источник

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии