如何使用Angular.js保持+和 - ng-pattern

时间:2016-12-13 06:28:56

标签: javascript angularjs

我需要一个帮助。我有一个文本字段,不应该使用alpha数值,而是使用Angular.js获取numbers,+,-,.。我在下面解释我的代码。

<div ng-class="{ 'myError': billdata.lati.$touched && billdata.lati.$invalid }">
<input type="text" name="lati" id="latitude" class="form-control oditek-form" placeholder="Add Latitude coordinate" ng-model="latitude"   ng-keypress="clearField('businessno');" ng-pattern="/^[0-9]+([,.][0-9]+)?$/">
</div>

但是问题是这个字段的值类似于-122.32379000000003,它显示错误信息。我需要这个字段只能接受numbers,+,- and .空格,也不允许使用字母数字值。请帮帮我。

3 个答案:

答案 0 :(得分:0)

使用/^[.+-]?[0-9]+([,.][0-9]+)?$/

答案 1 :(得分:0)

要满足要求,您可以使用以下模式

ng-pattern="/^[0-9]{1,7}$/"

示例:

<div ng-class="{ 'myError': billdata.lati.$touched && billdata.lati.$invalid }">
<input type="text" name="lati" id="latitude" class="form-control oditek-form" placeholder="Add Latitude coordinate" ng-model="latitude"   ng-keypress="clearField('businessno');" ng-pattern="/^[0-9]{1,7}$/">
</div>

希望这会对你有所帮助。

答案 2 :(得分:0)

将ng-pattern regex更改为ng-pattern="/^([\-\+0-9]{0,1})(\.?[0-9])*$/"

其中^([\-\+0-9]{0,1})允许使用+, - 或数字作为第一个字符

    <form name="myForm">
        <div ng-class="{ 'myError': billdata.lati.$touched && billdata.lati.$invalid }">
          <input type="text" ng-pattern="/^([\-\+0-9]{0,1})(\.?[0-9])*$/" name="lati" id="latitude" class="form-control oditek-form" placeholder="Add Latitude coordinate" ng-model="latitude" ng-keypress="clearField('businessno');" >
      </div>
      <label ng-show="myForm.lati.$error.pattern">Error</label>
  </form>