Когда дело доходит до проверки номеров телефонов в веб-приложениях, важно убедиться, что пользователи вводят действительные и правильно отформатированные номера. Пакет 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, вы можете упростить процесс проверки и создать более надежные приложения.