Angular 角度反应式表单模式验证器只允许文本、数字和一些字符

Angular 角度反应式表单模式验证器只允许文本、数字和一些字符,angular,angular-reactive-forms,angular-forms,Angular,Angular Reactive Forms,Angular Forms,我使用的是角度10和反应形式。 我需要一个只接受的输入(字母、数字和这两个字符“_”和“-”) 我试过用这个字母和数字: Validators.pattern('[a-zA-Z ][0-9]*')] 仅当我这样做时,上述方法才有效: Validators.pattern('[a-zA-Z ]*')] 但我也需要它来允许数字和-和_ 我如何才能做到这一点?您的代码将成为 Validators.pattern('[-_a-zA-Z0-9]*')] 编辑: 根据@ekalin的评论,似乎接受特

我使用的是角度10和反应形式。 我需要一个只接受的输入(字母、数字和这两个字符“_”和“-”) 我试过用这个字母和数字:

 Validators.pattern('[a-zA-Z ][0-9]*')]
仅当我这样做时,上述方法才有效:

Validators.pattern('[a-zA-Z ]*')]
但我也需要它来允许数字和-和_

我如何才能做到这一点?

您的代码将成为

Validators.pattern('[-_a-zA-Z0-9]*')]
编辑:
根据@ekalin的评论,

似乎接受特殊角色。。。完整的行是:name:[null、[Validators.required、Validators.min(10)、Validators.max(30)、Validators.pattern('[a-zA-Z0-9-\]*')]正则表达式允许空格(ascii 32)和\(ascii 137)之间的所有字符,所以几乎所有字符都可以。-必须是第一个(也可能是最后一个)不代表范围的字符,所以我会使用
[-\u a-zA-Z0-9]*
。对不起,路易斯…你的字符对我不起作用,因为它接受了我不想接受的字符,但你的字符在@ekalin…哦。我将删除我的answare,@ekalin将发布它。我只是在regex101网页上测试它