我想使用angular,
验证一个9位数字这是我的模态:
<input type="number" class="form-control" ng-model="id" required>
我试过模式= [0-9] {9},似乎它传递了它得到的每个数字。 我想只传递数字000000000 - 9999999999,min-max也不适用于我。
这是我的应用添加到此课程中的内容:
class="form-control ng-pristine ng-valid-number ng-invalid ng-invalid-required"
谢谢你!
答案 0 :(得分:3)
如Rahul Desai所述,您必须使用ngMinlength和ngMaxlength 但是既然你想使用数字,你必须稍微改变代码
<input type="number" ng-model="id" ng-minlength=9 ng-maxlength=9 required />
说实话,我不知道如何处理class="form-control"
。也许你可以添加它或将它留下来?!
无论如何你也可以尝试这个
<input type="number" ng-model="id" ng-pattern="/^[0-9]{1,9}$/" required />
您不再需要min / max属性。
修改强>
我想我在第二个时犯了一个错误。它应该是
ng-pattern="/^[0-9]{9}$/"
或
ng-pattern="/^[0-9]{9,9}$/"
答案 1 :(得分:2)
您是否同时尝试了ngMinlength
和ngMaxlength
?
示例:
<input type="text" ng-minlength=9 ng-maxlength=9 />
查看有关此内容的官方文档:https://docs.angularjs.org/api/ng/directive/input
关于表单验证的非常好的教程:http://www.ng-newsletter.com/posts/validations.html
答案 2 :(得分:1)
对于反应式表单,您应以以下方式编写验证器:
formControlYourField: [
"",
Validators.compose([
Validators.required,
Validators.minLength(9),
Validators.maxLength(9),
Validators.pattern("^[0-9]*$"),
]),
]
当然还有您的 .html
<input
matInput
required
formControlName="formControlYourField"
type="text"
placeholder="123456789"
/>
答案 3 :(得分:0)
我只是使用pattern
作为验证者。以下代码将构成字段required
,并且长度必须为only digits
的{{1}}
10