簡體   English   中英

AngularJS僅允許數字輸入字段中的整數

[英]AngularJS allow only integer numbers in number input field

無法理解如何添加ng-pattern,將字段標記為對所有無效條目無效。

我試過使用這個"/^(0|\\-?[1-9][0-9]*)$/它可以很好地過濾數字,如0.1或甚至0123無效(並且不過濾out by / /^-?[0-9][^\\.]*$/在一些類似的問題中被認為是正確的答案)。

但實際上它並沒有過濾掉“+3”和“1”之類的數字。 (正則表達式似乎是正確的,不允許這些值,我試圖在regex101.com上檢查它)如果您使用我在此處列出的ng-patterns之一,請嘗試在輸入字段中輸入+ N. 你會發現它是有效的。 (可能是那個模型將包含3&1而不是+3&1。但是我會將輸入標記為無效,直到用戶輸入實數整數)

希望有人有同樣的問題。

順便說一句,可能的解決方案之一是創建阻止輸入“。”的指令。 和“+”,但我想知道是否有可能用ng-pattern解決這個問題。

試試這個ng-pattern="/^[1-9]\\d*$/"只允許整數:

 angular .module('App', []) .controller('DefaultController', ['$scope', '$log', function ($scope, $log) { $scope.logNumber = function() { $log.log($scope.num); }; }]); 
 <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.10/angular.min.js"></script> <div ng-app="App"> <div class="container" ng-controller="DefaultController"> <form name="form"> <input type="number" ng-pattern="/^[1-9]\\d*$/" ng-change="logNumber()" ng-model="num" id="num" name="num"> <hr> Input valid? = <code>{{ form.num.$valid }}</code> </form> </div> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM