web-dev-qa-db-fra.com

ng-pattern pour seulement les nombres acceptera les caractères comme '-' dans angular.js

motif pour qu'un texte d’entrée accepte uniquement les nombres compris entre 0 et 9.

c'est mon modèle:

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

pour une raison quelconque, les caractères tels que '-' seront acceptés même s’ils ne sont pas dans la plage que j’ai déclarée.

c'est mon entrée 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">

quelqu'un peut-il aider s'il vous plaît?

13
lobengula3rd

Pour simplifier \d = toute valeur numérique

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

Exemple: http://jsfiddle.net/TheSharpieOne/JPkER/1/

41
TheSharpieOne

Vous devez ancrer l'expression pour limiter la valeur aux nombres et je ne pense pas que vous ayez besoin du modificateur global, votre expression devrait donc devenir:

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

Et même une meilleure expression:

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

Essayez ceci pour des nombres supérieurs à 0: $scope.onlyNumbers = /^[1-9]+[0-9]*$/
Pour tout nombre: `$ scope.onlyNumbers =/^ [0-9] + $/'

4
Tanya

Vous devez éditer le motif regex

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

0
Vivek Malik