11

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

@IsAlphaNUmereic() 地址:字符串;

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

4

3 回答 3

14

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

@IsNotEmpty()
@Transform(({ value }: TransformFnParams) => value.trim())
Address: string;
于 2020-11-15T09:35:14.990 回答
11

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

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

export function IsNotBlank(property: string, validationOptions?: ValidationOptions) {
    return function (object: Object, propertyName: string) {
        registerDecorator({
            name: "isNotBlank",
            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以获取有关自定义验证器的更多信息。

于 2019-03-25T08:20:33.477 回答
1
@IsNotEmpty()
@Transform((({value}): string) => value?.trim())
Address: string;

解构“价值”之后你可以修剪它

于 2021-10-16T13:09:56.847 回答