angular 实现的输入框数字千分位及保留几位小数点功能示例
本文实例讲述了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.jb51.net/jisuanqi/touzilicai_calc
在线存款计算器:
http://tools.jb51.net/jisuanqi/cunkuan_calc
科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue
在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq
更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》
希望本文所述对大家AngularJS程序设计有所帮助。
相关文章
测试IE浏览器对JavaScript的AngularJS的兼容性
这篇文章主要介绍了测试IE浏览器对JavaScript的AngularJS的兼容性的方法,尽管随着Windows10的近期上市,IE浏览器即将成为历史...需要的朋友可以参考下2015-06-06
详解Angular Forms中自定义ngModel绑定值的方式
在Angular应用中有两种方式来实现表单绑定,但是对于一些特殊的表单控件没法实现,这篇文章主要介绍了详解Angular Forms中自定义ngModel绑定值的方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-12-12
angular.js指令中的controller、compile与link函数的不同之处
最近一位大神问了我angular.js指令中的controller、compile与link函数的不同,想了想居然回答不出来,所以必须要深入的探究下,下面这篇文章主要介绍了关于angular.js指令中的controller、compile与link函数的不同之处,需要的朋友可以参考下。2017-05-05


最新评论