import { registerDecorator, ValidationArguments, ValidationOptions, ValidatorConstraint, ValidatorConstraintInterface } from 'class-validator'; import { i18nValidationMessage } from 'nestjs-i18n-2'; export function IsPhoneVietNam(validationOptions?: ValidationOptions) { return (object: any, propertyName: string) => { registerDecorator({ target: object.constructor, propertyName, options: validationOptions, validator: IsPhoneVietNamConstraint, }); }; } @ValidatorConstraint({ name: 'IsPhoneVietNam' }) export class IsPhoneVietNamConstraint implements ValidatorConstraintInterface { validate(value: any, validationArguments?: ValidationArguments) { console.log(typeof value) console.log(value) if (typeof value === "string" && value.match(/^(0?)(3[2-9]|5[6|8|9]|7[0|6-9]|8[0-6|8|9]|9[0-4|6-9])[0-9]{7}$/)) { return true } else { return false } } defaultMessage(validationArguments?: ValidationArguments): string { return "validation.INVALID_PHONE" // return "{"+validationArguments.property + "} " + "response.message.phoneFormatIsWrong } }