【发布时间】:2019-08-15 10:15:15
【问题描述】:
我想验证地址字段,它可能包含数字或字符串,但它不应该接受连续的空格
@IsAlphaNUMeric() 地址:字符串;
我想要那个,地址可以是数字或字母... 但它不应该接受连续的空格
【问题讨论】:
标签: node.js typeorm class-validator
我想验证地址字段,它可能包含数字或字符串,但它不应该接受连续的空格
@IsAlphaNUMeric() 地址:字符串;
我想要那个,地址可以是数字或字母... 但它不应该接受连续的空格
【问题讨论】:
标签: node.js typeorm class-validator
没有自定义验证装饰器的替代解决方案是:
@IsNotEmpty()
@Transform(({ value }: TransformFnParams) => value.trim())
Address: string;
【讨论】:
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 了解有关自定义验证器的更多信息。
【讨论】:
@IsNotEmpty()
@Transform((({value}): string) => value?.trim())
Address: string;
解构'值'之后你可以修剪它
【讨论】: