Освоение проверки ввода номера телефона во Flutter с помощью intl_phone_number

Вы создаете приложение Flutter, которое требует от пользователей ввода номера телефона? Проверка номера телефона может оказаться непростой задачей, но не бойтесь! В этой статье мы рассмотрим возможности пакета intl_phone_numberво Flutter и изучим различные методы проверки номеров телефонов.

Прежде чем мы углубимся в примеры кода, давайте убедимся, что в нашем проекте Flutter установлен пакет intl_phone_number. Откройте файл pubspec.yaml и добавьте следующую строку в раздел зависимостей:

dependencies:
  intl_phone_number: ^x.x.x

Замените x.x.xна последнюю версию пакета.

После установки пакета вы можете начать использовать его функции для проверки номеров телефонов. Вот несколько методов, которые вы можете использовать:

Метод 1. Проверка формата номера телефона

import 'package:intl_phone_number_input/intl_phone_number_input.dart';
String validatePhoneNumber(String phoneNumber) {
  final phoneNumberUtil = PhoneNumberUtil();
  try {
    final parsedPhoneNumber = phoneNumberUtil.parse(phoneNumber, 'en');
    if (!phoneNumberUtil.isValidNumber(parsedPhoneNumber)) {
      return 'Invalid phone number!';
    }
  } catch (e) {
    return 'Invalid phone number!';
  }
  return null; // Phone number is valid
}

Этот метод использует класс PhoneNumberUtil, предоставленный пакетом intl_phone_number, для анализа и проверки номера телефона. Он возвращает сообщение об ошибке, если номер телефона недействителен.

Метод 2. Получите отформатированный номер телефона

String getFormattedPhoneNumber(String phoneNumber) {
  final phoneNumberUtil = PhoneNumberUtil();
  try {
    final parsedPhoneNumber = phoneNumberUtil.parse(phoneNumber, 'en');
    return phoneNumberUtil.format(parsedPhoneNumber, PhoneNumberFormat.E164);
  } catch (e) {
    return '';
  }
}

Этот метод принимает номер телефона в качестве входных данных и возвращает отформатированный номер телефона в формате E.164. Это может быть полезно, если вам нужно сохранить или отобразить номер телефона в определенном формате.

Метод 3. Получите код страны

String getCountryCode(String phoneNumber) {
  final phoneNumberUtil = PhoneNumberUtil();
  try {
    final parsedPhoneNumber = phoneNumberUtil.parse(phoneNumber, 'en');
    return phoneNumberUtil.getRegionCodeForNumber(parsedPhoneNumber);
  } catch (e) {
    return '';
  }
}

Этот метод извлекает код страны из номера телефона. Это может быть удобно, если вам нужно определить страну, связанную с номером телефона.

Метод 4. Проверка длины номера телефона

bool isPhoneNumberLengthValid(String phoneNumber) {
  final phoneNumberUtil = PhoneNumberUtil();
  try {
    final parsedPhoneNumber = phoneNumberUtil.parse(phoneNumber, 'en');
    final phoneNumberLength = phoneNumberUtil.getLength(parsedPhoneNumber);
    return phoneNumberLength >= 10 && phoneNumberLength <= 15;
  } catch (e) {
    return false;
  }
}

Этот метод проверяет, находится ли длина номера телефона в допустимом диапазоне. Вы можете изменить значения 10и 15в соответствии со своими требованиями.

С помощью этих методов вы можете обрабатывать различные аспекты проверки номера телефона в вашем приложении Flutter. Не забудьте импортировать пакет intl_phone_number_inputв начале файла Dart:

import 'package:intl_phone_number_input/intl_phone_number_input.dart';

Теперь вы знаете, как реализовать проверку номера телефона во Flutter с помощью пакета intl_phone_number. Приятного кодирования!