Рубрики
Без рубрики

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

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

Автор оригинала: Pankaj Kumar.

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

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

Если вы посмотрите на статью Википедии в поисках действительного адреса электронной почты , она поддерживает множество специальных символов. Но чтобы охватить большинство действительных адресов электронной почты, я предполагаю, что адрес электронной почты состоит из символов, цифр и специальных символов+, -,. и _. Кроме того, каждый адрес электронной почты должен содержать только один символ@.

Для доменного имени у нас также могут быть поддомены. Таким образом, поддомен может содержать символы, цифры и специальные символы – и _. Опять же, поддомен может быть нескольких уровней, таких как xyz.abc.com . Таким образом, ДВУ среднего уровня должны начинаться с точки (.) и могут содержать символы, цифры и специальные символы-и _. Последний TLD должен иметь минимальную длину 2 и может содержать только слова.

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

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

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

  • journaldev@yahoo.com, journaldev-100@yahoo.com, journaldev.100@yahoo.com
  • journaldev111@journaldev.com, journaldev-100@journaldev.net,journaldev.100@journaldev.com.au
  • journaldev@1.com,journaldev@gmail.com.com, journaldev+100@gmail.com
  • journaldev-100@yahoo-test.com, journaldev_100@yahoo-test.ABC.CoM

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

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

  • journaldev – Нет @ symbole
  • journaldev@.com.my – Точка после символа @
  • journaldev123@gmail.a – длина последнего ДВУ меньше 2
  • journaldev123@@.com.com – Два символа @
  • .journaldev@journaldev.com – Я не могу с этого начать .
  • journaldev()*@gmail.com – недопустимые специальные символы в идентификаторе
  • journaldev@%*.com – недопустимые специальные символы в TLD
  • journaldev..2002@gmail.com – В удостоверении личности не может быть двух точек
  • journaldev.@gmail.com – Идентификатор не может заканчиваться точкой
  • journaldev@journaldev@gmail.com – Два символа @
  • journaldev@gmail.com.1a – последний TLD может содержать только символы

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

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

package com.journaldev.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Java email validation program
 * 
 * @author pankaj
 *
 */
public class EmailValidator {
	// Email Regex java
	private static final String EMAIL_REGEX = "^[\\w-\\+]+(\\.[\\w]+)*@[\\w-]+(\\.[\\w]+)*(\\.[a-z]{2,})$";

	// static Pattern object, since pattern is fixed
	private static Pattern pattern;

	// non-static Matcher object because it's created from the input String
	private Matcher matcher;

	public EmailValidator() {
		// initialize the Pattern object
		pattern = Pattern.compile(EMAIL_REGEX, Pattern.CASE_INSENSITIVE);
	}

	/**
	 * This method validates the input email address with EMAIL_REGEX pattern
	 * 
	 * @param email
	 * @return boolean
	 */
	public boolean validateEmail(String email) {
		matcher = pattern.matcher(email);
		return matcher.matches();
	}
}

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

package com.journaldev.util;

public class EmailValidatorTest {

	// list of valid email addresses
	private static final String[] validEmailIds = new String[] { "journaldev@yahoo.com", "journaldev-100@yahoo.com",
			"journaldev.100@yahoo.com", "journaldev111@journaldev.com", "journaldev-100@journaldev.net",
			"journaldev.100@journaldev.com.au", "journaldev@1.com", "journaldev@gmail.com.com",
			"journaldev+100@gmail.com", "journaldev-100@yahoo-test.com", "journaldev_100@yahoo-test.ABC.CoM" };

	// list of invalid email addresses
	private static final String[] invalidEmailIds = new String[] { "journaldev", "journaldev@.com.my",
			"journaldev123@gmail.a", "journaldev123@.com", "journaldev123@.com.com", ".journaldev@journaldev.com",
			"journaldev()*@gmail.com", "journaldev@%*.com", "journaldev..2002@gmail.com", "journaldev.@gmail.com",
			"journaldev@journaldev@gmail.com", "journaldev@gmail.com.1a" };

	private static EmailValidator emailValidator;

	public static void main(String args[]) {
		emailValidator = new EmailValidator();
		for (String temp : validEmailIds) {
			boolean valid = emailValidator.validateEmail(temp);
			System.out.println("Email ID " + temp + " is valid? " + valid);
		}
		System.out.println("\n\n");
		for (String temp : invalidEmailIds) {
			boolean valid = emailValidator.validateEmail(temp);
			System.out.println("Email ID " + temp + " is valid? " + valid);
		}
	}
}

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

Email ID journaldev@yahoo.com is valid? true
Email ID journaldev-100@yahoo.com is valid? true
Email ID journaldev.100@yahoo.com is valid? true
Email ID journaldev111@journaldev.com is valid? true
Email ID journaldev-100@journaldev.net is valid? true
Email ID journaldev.100@journaldev.com.au is valid? true
Email ID journaldev@1.com is valid? true
Email ID journaldev@gmail.com.com is valid? true
Email ID journaldev+100@gmail.com is valid? true
Email ID journaldev-100@yahoo-test.com is valid? true
Email ID journaldev_100@yahoo-test.ABC.CoM is valid? true



Email ID journaldev is valid? false
Email ID journaldev@.com.my is valid? false
Email ID journaldev123@gmail.a is valid? false
Email ID journaldev123@.com is valid? false
Email ID journaldev123@.com.com is valid? false
Email ID .journaldev@journaldev.com is valid? false
Email ID journaldev()*@gmail.com is valid? false
Email ID journaldev@%*.com is valid? false
Email ID journaldev..2002@gmail.com is valid? false
Email ID journaldev.@gmail.com is valid? false
Email ID journaldev@journaldev@gmail.com is valid? false
Email ID journaldev@gmail.com.1a is valid? false

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