最初的目的是爲了讓輸入的字段僅爲數字,不要包含英文,理所固然想到了正則表達,比起對每個字符判斷ASCII碼要方便的多html
JS正則表達式的使用,能夠參考正則表達式
正則表達式
以match爲例,全局匹配非數字數組
1 var reg = /\D/g; 2 var str = "abc12def"; 3 var result = str.match(reg); //['abc','def']
結果會以數組的形式展現,所以不難發現,若數組長度爲0,則全爲數字。app
可是,以怎樣的形式表達「輸入的字符全是數字」比較穩妥?spa
各有說法,有人認爲經過字符過濾,當用戶輸入非數字時,字符會顯示一瞬間而後由於不符合過濾要求被刪除。code
參考了張志成在知乎上的回答,一種只保留數字的簡單寫法。htm
<input type="text" id="text" ng-model="item.attr" ng-keyup="clearNum(item,'attr')">
var app = angular.module("myApp",[]); app.controller("myCtrl", function ($scope) { $scope.clearNum = function(obj, attr){ obj[attr] = obj[attr].replace(/\D/g,""); } });
可是這樣的效果用戶體驗很糟糕。blog
未完待續。。。。明天更!get