13

模式使输入文本只接受 0-9 之间的数字。

这是我的模式:

$scope.onlyNumbers = /[\u0030-\u0039]+/g;

出于某种原因,即使它不在我声明的范围内,也会接受像“-”这样的字符。

这是我的输入 html:

  <input style="width:40%;" type="text" name="phone" ng-minlength="10" ng-maxlength="15" ng-model="register.phone" placeholder='cell phone' ng-pattern="onlyNumbers" required title="please enter cell phone">

有人可以帮忙吗?

4

4 回答 4

41

为了使它更简单\d=任何数值

$scope.onlyNumbers = /^\d+$/;

示例:http: //jsfiddle.net/TheSharpieOne/JPkER/1/

于 2013-09-11T17:09:31.770 回答
13

您需要锚定表达式以仅将值限制为数字,我认为您不需要全局修饰符,因此您的表达式应变为:

$scope.onlyNumbers = /^[\u0030-\u0039]+$/;

甚至更好的表达方式:

$scope.onlyNumbers = /^[0-9]+$/;
于 2013-09-11T17:01:11.517 回答
4

试试这个大于 0 的数字: $scope.onlyNumbers = /^[1-9]+[0-9]*$/
对于任何数字:`$scope.onlyNumbers = /^[0-9]+$/'

于 2015-07-08T00:29:04.117 回答
0

您需要编辑 regx 模式

$scope.onlyNumbers = /^[0-9]{1,7}$/;

于 2016-12-22T10:14:46.817 回答