我有一个非常简单的 Angular 模式,如下所示:
<div>
<input [(ngModel)]="testField" name="testField" #testFieldN="ngModel" required pattern="[a-zA-Z]+" />
<div *ngIf="testFieldN.invalid"
class="alert alert-danger">
<div *ngIf="testFieldN.errors?.pattern">
Title is invalid.
</div>
<div *ngIf="testFieldN.errors?.required">
Title is required.
</div>
</div>
</div>
我希望 testField 应该至少有一个字母字符。这意味着像“One11”这样的值应该被接受。但是,如果我输入该值,则会出现模式错误并显示“标题无效。”
有人能指出哪里出了问题吗?另外,我预计当字段为空时,应该启动模式错误,但事实并非如此。这是为什么?
为了说清楚,这就是我测试模式的方式,它与“One11”匹配:Demo
最佳答案
例如,您的模式仅允许字母字符,而不允许数字。如果您想要接受数字的东西,请尝试:
[0-9]*[a-zA-Z]{1,}[0-9]*
基本上是:
- 0 个或多个数字
- 至少 1 个 A-z 字符
- 0 个或多个数字
关于Angular简单模式验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54429177/