如果用户在输入字段类型编号中写入小数点(。),如何显示错误。我正在使用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;
答案 0 :(得分:2)
您需要在代码中更改两件事:
ngPattern
不接受函数作为其值。只有正则表达式或评估为正则表达式的字符串才是有效值。 number
类型的输入不适用于pattern validation。只有text
,search
,tel
,url
,email
或password
才能让您使用模式进行验证。由于您无论如何都尝试验证电话号码,我建议您使用tel
类型。 在模板中,使用:
<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}$/;