仅对于数字的ng-pattern将接受angular.js中的' - '之类的字符

时间:2013-09-11 16:47:36

标签: javascript regex angularjs

模式使输入文本只接受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 个答案:

答案 0 :(得分:41)

使其更简单\d =任何数值

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

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

答案 1 :(得分:13)

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

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

甚至更好的表达:

$scope.onlyNumbers = /^[0-9]+$/;

答案 2 :(得分:4)

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

答案 3 :(得分:0)

您需要编辑regx模式

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