добавить десятичную точку и разделитель тысяч в текстовое поле - PullRequest
1 голос
/ 06 мая 2020

Я связываю, чтобы добавить разделитель тысяч и десятичную точку в текстовое поле.

Я также использую указанную ниже директиву

.directive('format', function ($filter) {
    'use strict';

    return {
        require: '?ngModel',
        link: function (scope, elem, attrs, ctrl) {
            if (!ctrl) {
                return;
            }

            ctrl.$formatters.unshift(function () {
                return $filter('number')(ctrl.$modelValue);
            });

            ctrl.$parsers.unshift(function (viewValue) {
                var plainNumber = viewValue.replace(/[\,\.]/g, ''),
                    b = $filter('number')(plainNumber);

                elem.val(b);

                return plainNumber;
            });
        }
    };
})

это моя Демо

Мне нужно это изменить. Когда пользователь вводит 500 000, это должно быть как 500 000,00, и пользователь может также ввести 5000,50.

Как я могу изменить это, вы можете помочь

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Вы можете использовать toFixed() и regex

function currency(el){
  a = parseFloat(el.value);
  a = a.toFixed(2);
  a=a.toString();       
  var b = a.replace(/[^\d\.]/g,'');
  var dump = b.split('.');
  var c = '';
  var lengthchar = dump[0].length;
  var j = 0;
  for (var i = lengthchar; i > 0; i--) {
          j = j + 1;
          if (((j % 3) == 1) && (j != 1)) {
                  c = dump[0].substr(i-1,1) + ',' + c;
          } else {
                  c = dump[0].substr(i-1,1) + c;
          }
  }

  if(dump.length>1){
          if(dump[1].length>0){
                  c += '.'+dump[1];
          }else{
                  c += '.';
          }
  }
  console.log(c);
}
<input type='text' onkeyup='currency(this)'>
0 голосов
/ 06 мая 2020

Вывести десятичную дробь из-под контроля пользователей.

num = 599993863737
num = str(num).replace('.','')
num = float(num[:len(num)-2]+'.'+num[-2:])


print(num)
5999938637.37
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...