динамически переформатировать ввод в javascript, чтобы добавить запятые к числам - PullRequest
2 голосов
/ 29 апреля 2011

У меня проблема с вводом номера.Пользователь обычно вводит большое число со многими нулями, и часто они пропускают один или два нуля, поскольку их трудно точно подсчитать.

Я думаю, что javascript может решить эту проблему, показывая пользователю введенный номер, отформатированный запятыми.

например:

input: |1230000000000 |

Результат: 1 230 000 000 000

Как этого достичь?

Ответы [ 2 ]

5 голосов
/ 29 апреля 2011

Используйте следующую функцию в JavaScript

function addCommas(nStr)
{
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

пример

addCommas('9999999.00')
// 9,999,999.00
0 голосов
/ 05 февраля 2015

Это старый вопрос, но все еще без правильного ответа, так что это мое динамическое решение, для преобразования результата требуется та же функция addCommas, но добавление события keyup для очистки текущего значения (remove ',') и переформатирования опять новое значение.

$('.datainto').keyup(function () {
    var value = $(this).val().replace(/,/g,'');
    $(this).val(addCommas(value));
});

Проверьте рабочий раствор здесь: http://jsfiddle.net/darorck/371zrjet/

...