web-dev-qa-db-ja.com

数字のみのng-patternは、angle.jsで「-」などの文字を受け入れます

入力テキストが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">

誰かが助けてくれますか?

13
lobengula3rd

簡単にするために\d =任意の数値

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

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

41
TheSharpieOne

値を数値のみに制限するために式を固定する必要があり、式が次のようになるようにグローバル修飾子が必要だとは思いません。

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

そしてさらに良い表現:

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

0より大きい数でこれを試してください:$scope.onlyNumbers = /^[1-9]+[0-9]*$/
任意の数値: `$ scope.onlyNumbers =/^ [0-9] + $/'

4
Tanya

正規表現パターンを編集する必要があります

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

0
Vivek Malik