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

lob*_*3rd 13 javascript regex angularjs

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

这是我的模式:

$scope.onlyNumbers = /[\u0030-\u0039]+/g;
Run Code Online (Sandbox Code Playgroud)

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

这是我的输入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">
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

The*_*One 41

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

$scope.onlyNumbers = /^\d+$/;
Run Code Online (Sandbox Code Playgroud)

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


Ibr*_*jar 13

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

$scope.onlyNumbers = /^[\u0030-\u0039]+$/;
Run Code Online (Sandbox Code Playgroud)

甚至更好的表达:

$scope.onlyNumbers = /^[0-9]+$/;
Run Code Online (Sandbox Code Playgroud)