如何用角度验证输入数字长度?

时间:2014-11-30 11:11:30

标签: javascript html angularjs

我想使用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"
谢谢你!

4 个答案:

答案 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)

您是否同时尝试了ngMinlengthngMaxlength

示例:

<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