アングラーは枠の数字の千分位を入力して、何位の小数点を保留しますか?

1859 ワード

              ,        ,      
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
htmlコードの引用は、digitsが伝えたのは小数点以下の数位で、デフォルトでは伝えずに2位を保留します.