Как реализовать проверку номера телефона во Flutter с помощью TextFormField

В этой статье блога мы рассмотрим различные методы реализации проверки номера телефона во Flutter с помощью виджета TextFormField. Мы обсудим несколько подходов и предоставим примеры кода, которые помогут вам эффективно интегрировать проверку номера телефона в ваши приложения Flutter. К концу этой статьи вы получите четкое представление о том, как проверять номера телефонов в формах Flutter.

Метод 1: использование регулярных выражений
Регулярные выражения (регулярные выражения) — мощный инструмент сопоставления с образцом. Их можно использовать для проверки телефонных номеров на основе определенных форматов. Вот пример реализации проверки номера телефона с использованием регулярного выражения во Flutter:

TextFormField(
  decoration: InputDecoration(
    labelText: 'Phone Number',
  ),
  validator: (value) {
    if (value.isEmpty) {
      return 'Please enter a phone number';
    }
// Phone number regex pattern
    String pattern = r'^\+?[1-9]\d{1,14}$';
    RegExp regExp = RegExp(pattern);
    if (!regExp.hasMatch(value)) {
      return 'Please enter a valid phone number';
    }
    return null;
  },
)

Метод 2. Использование библиотеки анализа номеров телефонов.
Другой подход заключается в использовании библиотеки анализа номеров телефонов, например libphonenumber. Эта библиотека предоставляет комплексные возможности анализа, проверки и форматирования телефонных номеров. Вот пример интеграции libphonenumber с Flutter:

import 'package:libphonenumber/libphonenumber.dart';
TextFormField(
  decoration: InputDecoration(
    labelText: 'Phone Number',
  ),
  validator: (value) async {
    if (value.isEmpty) {
      return 'Please enter a phone number';
    }
    bool isValid = await PhoneNumberUtil.isValidPhoneNumber(
      phoneNumber: value,
      isoCode: 'US', // ISO country code
    );
    if (!isValid) {
      return 'Please enter a valid phone number';
    }
    return null;
  },
)

Метод 3: использование пакета для проверки номера телефона
На pub.dev доступно несколько пакетов, которые предоставляют функции проверки номера телефона. Один из популярных пакетов — «intl_phone_field». Вот пример использования пакета intl_phone_field:

import 'package:intl_phone_field/intl_phone_field.dart';
IntlPhoneField(
  decoration: InputDecoration(
    labelText: 'Phone Number',
  ),
  validator: (value) {
    if (value.isEmpty) {
      return 'Please enter a phone number';
    }
    if (!value.isValidPhoneNumber()) {
      return 'Please enter a valid phone number';
    }
    return null;
  },
)

В этой статье мы рассмотрели три различных метода реализации проверки номера телефона во Flutter с помощью виджета TextFormField. Мы обсудили использование регулярных выражений, интеграцию библиотек анализа телефонных номеров, таких как libphonenumber, и использование таких пакетов, как «intl_phone_field». Каждый метод имеет свои преимущества, поэтому выберите тот, который лучше всего соответствует требованиям вашего проекта. Внедрив правильную проверку номера телефона, вы можете улучшить взаимодействие с пользователем и обеспечить точный ввод данных в формы Flutter.