Typescript 类验证器的匹配修饰符无法正常工作

Typescript 类验证器的匹配修饰符无法正常工作,typescript,nestjs,class-validator,Typescript,Nestjs,Class Validator,我正在学习nestjs作为我的工作要求 这是我的正则表达式:/(?=[^\d].*)^[\w]{4,}$/,这意味着第一个字符不能是数字,整个字符串至少有4个字符 以下是DTO: import{IsString,IsPhoneNumber,Matches}来自“类验证器”; 导出类CreateUserDto{ @匹配(/(?=[^\d].*)^[\w]{4,}$/{ 信息: '用户名的第一个字符不能是数字。用户名必须至少包含4个字符', }) 用户名:字符串; @IsString() 密码:字符

我正在学习nestjs作为我的工作要求

这是我的正则表达式:
/(?=[^\d].*)^[\w]{4,}$/
,这意味着第一个字符不能是数字,整个字符串至少有4个字符

以下是DTO:

import{IsString,IsPhoneNumber,Matches}来自“类验证器”;
导出类CreateUserDto{
@匹配(/(?=[^\d].*)^[\w]{4,}$/{
信息:
'用户名的第一个字符不能是数字。用户名必须至少包含4个字符',
})
用户名:字符串;
@IsString()
密码:字符串;
@IsPhoneNumber('VN')
电话号码:字符串;
}
无论请求正文中的用户名是什么,它仍然被传递,甚至是一个空字符串 但是,当我为username字段发布一个普通数字时,服务器将一个错误作为Matches decorator的默认操作进行响应

{
“状态代码”:400,
“信息”:[
“用户名必须是字符串”
],
“错误”:“错误请求”
}
我还在main.ts中启用了验证

异步函数引导(){
const app=wait NestFactory.create(AppModule);
app.enableCors();
app.useGlobalPipes(新的ValidationPipe());
等待应用程序。聆听(9000);
}
bootstrap();

谁能给我解释一下吗?谢谢你的帮助

奇怪的是,我通过删除
dist
文件夹解决了这个问题


也许ts transpiler没有将最新的ts代码重新传输到js代码。我没有理由

你的意思是至少四个字符而不是单词吗?而且,不仅匹配的字符串不能是数字。它也不能以数字开头,例如,
333jjj
将不匹配。到底是什么问题?以前,我无法使用Matches decorator通过regex验证用户名字段。但在删除
dist
文件夹后。它就像一个符咒。事实上,我刚刚解决了我的问题。无论如何,谢谢你的关注:)哦,是的,我的意思是“角色”。那是我的拼写错误