首页 > 语言 > JavaScript > 正文

angular 实现的输入框数字千分位及保留几位小数点功能示例

2024-05-06 15:33:20
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选