在类验证器中验证空白

时间:2019-03-25 07:50:19

标签: node.js typeorm class-validator

我要验证“地址”字段,它可能包含数字或字符串,但不应接受连续的空格

@IsAlphaNUmereic()     地址:字符串;

我想要,地址可以是数字或字母... 但它不应该接受连续的空格

2 个答案:

答案 0 :(得分:2)

Afaik不支持“ isNotBlank”装饰器,但您可以自己写一个:

import { registerDecorator, ValidationOptions } from "class-validator";

export function IsNotBlank(property: string, validationOptions?: ValidationOptions) {
    return function (object: Object, propertyName: string) {
        registerDecorator({
            name: "isBlank",
            target: object.constructor,
            propertyName: propertyName,
            constraints: [property],
            options: validationOptions,
            validator: {
                validate(value: any) {
                    return typeof value === "string" && value.trim().length > 0;
                }
            }
        });
    };
}

然后,您可以将此自定义验证器添加到现有的验证器中:

@IsNotBlank()
@IsAlphaNumeric()
Address: string;

检出https://github.com/typestack/class-validator#custom-validation-decorators,以获取有关自定义验证程序的更多信息。

答案 1 :(得分:0)

没有自定义验证修饰符的替代解决方案是:

@IsNotEmpty()
@Transform((value: string) => value?.trim())
Address: string;