【问题标题】:`ng-pattern` - how to check for only numbers?`ng-pattern` - 如何只检查数字?
【发布时间】:2016-03-29 12:59:17
【问题描述】:

我使用ng-pattern 仅检查输入中的数字。但对我来说这行不通。我可以在number 之后输入characters。我该如何限制呢?

这是我的代码:

<div ng-app ng-controller="formCtrl">
<form name="myForm" ng-submit="onSubmit()">
    <input type="text" ng-model="price" name="price_field" ng-pattern="/^[0-9]/" required>
    <span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span>
    <input type="submit" value="submit"/>
</form>
</div>

Live Demo

【问题讨论】:

标签: angularjs angularjs-forms


【解决方案1】:

对于反应形式

this.form = fb.group({

  number: ['', [Validators.required, Validators.pattern("^[0-9]*$")]]

})

【讨论】:

    【解决方案2】:

    ng-pattern="/^[0-9]*$/" //改成

    ng-pattern="/^\d{1,10}$/"
    

    注意:'\d' 不仅可以检查 0-9,还可以检查许多数字,例如希腊数字

    【讨论】:

    • 为什么要改呢?这种方法有什么好处?
    【解决方案3】:

    使用这个表达式

    ng-pattern="/^[0-9]*$/"
    

    更新:

    为了接受唯一的字符,你可以这样使用。

    ng-pattern="/^[a-zA-Z]*$/"
    

    【讨论】:

    • 好的。对于接受字符,我可以使用ng-pattern="/^[a-z][A-Z]*$/"- 吗?
    • 具体要求是什么?
    • 只需要允许字符(名称字段)
    • 它不适用于 angularjs 1.2.x,它也允许字符
    【解决方案4】:

    试试这个正则表达式:它应该可以工作/^[0-9]+$/ + 号用于接受一位或多位数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-23
      • 1970-01-01
      相关资源
      最近更新 更多