本文實例講述了angular 實現的輸入框數字千分位及保留幾位小數點功能。分享給大家供大家參考,具體如下:
網上查到一個關于千分位的指令,我稍微做了點完善,通用指令代碼
myApp.directive('price', function($parse) { return {  link: function (scope, element, attrs, ctrl) {    //控制輸入框只能輸入數字和小數點    function limit(){      var limitV=element[0].value;      limitV=limitV.replace(/[^0-9.]/g,"");      //處理0開頭的整數      if ((/^0+[0-9]+$/).test(limitV)) {        limitV=limitV.replace(//b(0+)/gi,"");      }      //限定小數點后的位數      var digits = attrs['digits']?Number(attrs['digits']):2;      if (limitV*Math.pow(10,digits)%1!=0) {        var index = limitV.indexOf('.');        var last = index+digits+1;        limitV = (""+limitV).substring(0,last);      }      element[0].value=limitV;      $parse(attrs['ngModel']).assign(scope, limitV);      format();    }    //對輸入數字的整數部分插入千位分隔符    function format(){      var formatV=element[0].value;      var array=new Array();      array=formatV.split(".");      var re=/(-?/d+)(/d{3})/;      while(re.test(array[0])){        array[0]=array[0].replace(re,"$1,$2")      }      var returnV=array[0];      for(var i=1;i<array.length;i++){        returnV+="."+array[i];      }      element[0].value=returnV;      $parse(attrs['ngModel']).assign(scope, formatV);    }    scope.$watch(attrs.ngModel,function(){      limit();    })  } };})html代碼的引用,digits傳的是小數點后保留幾位,默認不傳保留2位
<input ng-model="money" price digits="1"/>
PS:這里再為大家推薦幾款在線計算工具供大家參考使用:
在線投資理財計算器:
http://tools.VeVB.COm/jisuanqi/touzilicai_calc
在線存款計算器:
http://tools.VeVB.COm/jisuanqi/cunkuan_calc
科學計算器在線使用_高級計算器在線計算:
http://tools.VeVB.COm/jisuanqi/jsqkexue
在線計算器_標準計算器:
http://tools.VeVB.COm/jisuanqi/jsq
更多關于AngularJS相關內容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結》、《AngularJS入門與進階教程》及《AngularJS MVC架構總結》
希望本文所述對大家AngularJS程序設計有所幫助。
新聞熱點
疑難解答