Введение
Проверка электронной почты — обычная задача во многих приложениях, и Dart предоставляет мощные инструменты для эффективного решения этой задачи. В этой статье мы рассмотрим несколько методов проверки адресов электронной почты с использованием регулярных выражений в Dart. Мы обсудим различные шаблоны регулярных выражений, предоставим примеры кода и объясним их использование. Давайте погрузимся!
Метод 1: простой шаблон электронного письма
Одно из самых простых и наиболее часто используемых регулярных выражений для проверки электронной почты выглядит следующим образом:
bool validateEmail(String email) {
final pattern = r'^[\w-]+(\.[\w-]+)*@([a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.)+[a-zA-Z]{2,}$';
final regex = RegExp(pattern);
return regex.hasMatch(email);
}
Объяснение:
^и$обозначают начало и конец строки соответственно.[\w-]+соответствует одному или нескольким словесным символам или дефисам.(\.[\w-]+)*соответствует нулю или более вхождению точки, за которой следуют слова или дефисы.@соответствует символу “@”.([a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.)+соответствует имени домена.[a-zA-Z]{2,}соответствует домену верхнего уровня (например,.com,.org,.io).
Метод 2: свободная проверка
Если вы предпочитаете более простой подход к проверке, вы можете использовать следующий шаблон регулярного выражения:
bool validateEmailLoose(String email) {
final pattern = r'^.+@.+\..+$';
final regex = RegExp(pattern);
return regex.hasMatch(email);
}
Объяснение:
^и$обозначают начало и конец строки соответственно..+соответствует одному или нескольким любым символам (кроме новой строки).@соответствует символу “@”..+соответствует одному или нескольким любым символам.\.соответствует символу точки..+соответствует одному или нескольким любым символам.
Метод 3: проверка электронной почты с помощью списка TLD
В некоторых случаях вам может потребоваться проверить адреса электронной почты, убедившись, что домен верхнего уровня (TLD) действителен. Этого можно добиться, используя список TLD и следующий код:
bool validateEmailWithTLDList(String email) {
final pattern = r'^[\w-]+(\.[\w-]+)*@([a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.)+('
r'com|net|org|edu|gov|int|mil|arpa|biz|aero|coop|info|name|pro|'
r'museum|travel|n[a-z]{2})$';
final regex = RegExp(pattern);
return regex.hasMatch(email);
}
Объяснение:
- Шаблон тот же, что и в методе 1, с дополнительной группой
(com|net|org|edu|gov|int|mil|arpa|biz|aero|coop|info|name|pro|museum|travel|n[a-z]{2}), соответствующей действительным TLD.
Метод 4: использование пакета EmailValidator
Если вы предпочитаете подход более высокого уровня, вы можете использовать пакет email_validator, который обеспечивает удобный способ проверки адресов электронной почты в Dart. Чтобы использовать этот пакет, добавьте его в свой файл pubspec.yaml:
dependencies:
email_validator: ^3.0.0
Затем вы можете использовать пакет следующим образом:
import 'package:email_validator/email_validator.dart';
bool validateEmailWithPackage(String email) {
return EmailValidator.validate(email);
}
Заключение
В этой статье мы рассмотрели несколько методов проверки адресов электронной почты с помощью регулярных выражений в Dart. Мы начали с простых шаблонов регулярных выражений и постепенно вводили более сложные методы. Кроме того, мы рассмотрели использование пакета email_validatorв качестве альтернативы более высокого уровня. С помощью этих методов вы можете уверенно проверять адреса электронной почты в своих приложениях Dart. Приятного кодирования!