如何在输入字段中禁用单个小数点(。),其中类型编号为角js

时间:2016-08-29 13:56:45

标签: angularjs regex ionic-framework

如果用户在输入字段类型编号中写入小数点(。),如何显示错误。我正在使用ng-pattern但是在输入单个完整停止时它没有验证。

对于前。如果我输入了数字“9988587146”。它没有显示错误或调用ng-pattern函数,如果我写两个点然后它显示错误。 对于Ex“9988587146 ..”Everthing工作正常所有验证S输入字段中的单点(。)除外 HTML

<input type="number" name="number" class="form-control" placeholder="Phone Number" ng-maxlength="10" ng-minlength="10" limit-to="10" step="0" ng-pattern="checkPattern()" ng-model="user.number"   required/>

我的检查模式功能。

var isnum = /^[0-9]{10,10}$/.test($scope.user.number);
return isnum;

1 个答案:

答案 0 :(得分:2)

您需要在代码中更改两件事:

  1. ngPattern不接受函数作为其值。只有正则表达式或评估为正则表达式的字符串才是有效值。
  2. 与评论中提到的@WiktorStribiżew一样,number类型的输入不适用于pattern validation。只有textsearchtelurlemailpassword才能让您使用模式进行验证。由于您无论如何都尝试验证电话号码,我建议您使用tel类型。
  3. 在模板中,使用:

    <input type="tel" ng-pattern="checkPattern" name="number" class="form-control" placeholder="Phone Number" ng-maxlength="10" ng-minlength="10" limit-to="10" step="0" ng-model="user.number" required/>
    

    在控制器中:

    $scope.checkPattern = /^[0-9]{10,10}$/;