2013-11-18 4 views
0

Как добавить запятые в числа, в настоящее время я делаю вывод, подобный этому, 1,2,3,4,5,6,7,890 - пытаясь получить результат, который выводит следующие 1,234,567,890 - с помощью клавиатуры, которая может вызвать проблемы, пожалуйста, сообщитеПравильно отображать запятые

numberWithCommas : function() { 
    var goal = $("#foo"); 
    goal.val(goal.val().toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); 
}, 

Обновление: Я обнаружил, что replace(/\B(?=(\d{3})+(?!\d))/g, ','); исправили проблему слишком большого количества запятых

+0

Почему вы выполняете 'toString()'? Это уже строка. – putvande

+0

Возможно, этот ответ может помочь http://stackoverflow.com/questions/149055/how-can-i-format-numbers-as-money-in-javascript. Также вы можете взглянуть на: http://numeraljs.com/ – Diego

+0

Может кто-нибудь объяснить мне это регулярное выражение? http://stackoverflow.com/q/20055932/57218 – Guilherme

ответ

2

удалить все текущие запятые, а затем вставить новые в соответствующих местах:

numberWithCommas : function() { 
    $("#foo").val(function(_,val) { 
    return val.replace(/\,/g,'').replace(/\B(?=(\d{3})+(?!\d))/g, ','); 
    }); 
}, 

FIDDLE

+0

Ваша скрипка не работает. – Guilherme

+0

@Guilherme - он работает отлично для меня, не входной дисплей '1,234,567,890'. – adeneo

+0

@adeneo Добавление [объяснения] (http://meta.stackexchange.com/questions/177757/are-answers-that-just-contain-a-regular-expression-pattern-really-good-answers) о том, как regex works оценивается – HamZa

Смежные вопросы