Я пытаюсь сделать формат валюты для своего ввода, который я хочу автоматически форматировать с разделителем тысяч («»,») и десятичными знаками; Пробовал с несколькими плагинами, но они у меня не работают.
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;
}
Это добавляет мне запятые, но только для первой единицы тысяч :(
Этот пример здесь работает, но на событии размытия, как мне запустить его на событии keyup.
$("#number").keyup(function() {
this.value = parseFloat(this.value.replace(/,/g, ""))
.toFixed(2)
.toString()
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
});
Если бы у вас было, например:
Итак, с JQuery 1 :
* См. в JSFiddle .
Оценки
Сегодня большинство современных браузеров поддерживают Intl.NumberFormat , который помогает нам форматировать число, не прибегая к регулярным выражениям или функциям, специфичным для jQuery.
Чтобы отобразить запятую в качестве разделителя тысяч, используйте ее следующим образом.
Я использую для этого случая jquery.maskedinput.min.js плагин, который форматирует ввод ввода
Простой пример
Помимо чисел, он позволяет форматировать больше входных данных.
Используйте jQuery jquery.maskedinput.min.js в функции маски, вы даете ей формат, который вы хотите, чтобы ваш ввод имел
здесь я оставляю вам функцию
javascript
, которая позволяет вам форматировать число в соответствии с заданной маской, кроме того, функция позволяет вам формулировать процесс.