我尝试使用模板表单,而不是在组件类中定义FormGroup(出于学习目的),我已经放置了一个regex,它应该为密码定义一组规则(至少8个字符、1个大写字母、1个小写字母和1个数字)作为模式属性的值,我敢肯定的regex工程,因为我用它在另一个组件,但在这里它不会工作的一些原因,它似乎匹配任何东西。
<input #password="ngModel" type="password" name="password" [(ngModel)]="credentials.password" required pattern="/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$/gm)]"/>
我错过什么了吗?我用的是Angular 14
1条答案
按热度按时间5f0d552i1#
您的代码的问题在于,您使用pattern属性来指定输入字段的正则表达式模式,但是您还将正则表达式模式括在正斜杠(/)中。
为了为pattern属性指定正则表达式模式,您应该只提供不带正斜杠的模式。
下面是您应该如何修改代码:
注意,您还应该从regex模式中删除gm标志,因为pattern属性不支持它们。