Освоение проверки номера телефона с помощью пакета Class-Validator

Когда дело доходит до проверки номеров телефонов в веб-приложениях, важно убедиться, что пользователи вводят действительные и правильно отформатированные номера. Пакет Class-Validator предоставляет удобный и мощный способ выполнения пользовательской проверки номеров телефонов в проектах TypeScript или JavaScript. В этой статье мы рассмотрим различные методы и примеры кода для эффективной проверки номера телефона с помощью пакета Class-Validator.

Метод 1: использование регулярных выражений
Один из самых простых и распространенных методов проверки номеров телефонов — использование регулярных выражений. Пакет Class-Validator позволяет определять собственные правила проверки с помощью регулярных выражений. Вот пример того, как можно проверить номер телефона с помощью регулярного выражения:

import { IsPhoneNumber } from 'class-validator';
class User {
  @IsPhoneNumber()
  phoneNumber: string;
}
const user = new User();
user.phoneNumber = '+1 123-456-7890';
// Validate the phone number
validate(user).then(errors => {
  if (errors.length > 0) {
    console.log(errors);
  } else {
    console.log('Phone number is valid!');
  }
});

Метод 2: использование пользовательских функций проверки
Помимо регулярных выражений пакет Class-Validator позволяет определять пользовательские функции проверки для более сложных сценариев проверки номера телефона. Вот пример:

import { validate, validateOrReject } from 'class-validator';
class User {
  @ValidateIf((object, value) => value !== undefined)
  @Validate(phoneNumberValidator)
  phoneNumber: string;
}
function phoneNumberValidator(value: string) {
  // Custom validation logic
  // Return true if valid, false otherwise
}
const user = new User();
user.phoneNumber = '+1 123-456-7890';
// Validate the phone number
validate(user).then(errors => {
  if (errors.length > 0) {
    console.log(errors);
  } else {
    console.log('Phone number is valid!');
  }
});

Метод 3. Форматирование номеров телефонов
В некоторых случаях перед проверкой может потребоваться отформатировать номера телефонов по определенному шаблону. Пакет Class-Validator позволяет применять правила форматирования с помощью декораторов. Вот пример:

import { IsPhoneNumber, MinLength, Transform } from 'class-validator';
class User {
  @IsPhoneNumber()
  @Transform(value => formatPhoneNumber(value))
  phoneNumber: string;
}
function formatPhoneNumber(phoneNumber: string): string {
  // Custom formatting logic
  // Return the formatted phone number
}
const user = new User();
user.phoneNumber = '123-456-7890';
// Validate and format the phone number
validate(user).then(errors => {
  if (errors.length > 0) {
    console.log(errors);
  } else {
    console.log('Phone number is valid and formatted!');
    console.log(user.phoneNumber); // Formatted phone number
  }
});

Проверка номеров телефонов имеет решающее значение для обеспечения целостности данных в ваших веб-приложениях. Пакет Class-Validator предоставляет полный набор инструментов для проверки пользовательского номера телефона. В этой статье мы рассмотрели методы с использованием регулярных выражений, пользовательских функций проверки и правил форматирования для эффективной проверки номеров телефонов. Используя возможности пакета Class-Validator, вы можете упростить процесс проверки и создать более надежные приложения.