У меня есть эти числа
10999
и 8094
и456
И все, что я хочу сделать, это добавить запятую в нужном месте, если это нужно, чтобы это выглядело так
10,999
и 8,094
и456
Все это внутри тега ap, как это <p class="points">10999</p>
и т. Д.
Это можно сделать?
Я попытался сделать это здесь с помощью других сообщений http://jsfiddle.net/pdWTU/1/, но не могу заставить его работать
благодаря
Джейми
ОБНОВИТЬ
Немного поработал и сумел разобраться здесь http://jsfiddle.net/W5jwY/1/
Собираемся взглянуть на новый плагин Globalization, чтобы найти лучший способ сделать это
благодаря
Джейми
javascript
jquery
formatting
numbers
Джейми Тейлор
источник
источник
<number string>.replace(/\B(?=(?:\d{3})+(?!\d))/g, ',')
Ответы:
Работает во всех браузерах, это все, что вам нужно.
function commaSeparateNumber(val){ while (/(\d+)(\d{3})/.test(val.toString())){ val = val.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2'); } return val; }
Написал это компактно и по делу, благодаря регулярному выражению. Это простой JS, но вы можете использовать его в своем jQuery так:
$('#elementID').html(commaSeparateNumber(1234567890));
или же
$('#inputID').val(commaSeparateNumber(1234567890));
источник
Number(10000).toLocaleString('en'); // "10,000"
источник
Ответ Тимоти Пиреса был очень правильным, но если вам нужно заменить числа запятыми Сразу же, когда пользователь вводит текстовое поле, вы можете использовать функцию Keyup.
$('#textfield').live('keyup', function (event) { var value=$('#textfield').val(); if(event.which >= 37 && event.which <= 40){ event.preventDefault(); } var newvalue=value.replace(/,/g, ''); var valuewithcomma=Number(newvalue).toLocaleString('en'); $('#textfield').val(valuewithcomma); }); <form><input type="text" id="textfield" ></form>
источник
Взгляните на недавно выпущенный плагин Globalization для jQuery от Microsoft.
источник
Взгляните на Numeral.js . Он может форматировать числа, валюту, проценты и поддерживает локализацию.
источник
function delimitNumbers(str) { return (str + "").replace(/\b(\d+)((\.\d+)*)\b/g, function(a, b, c) { return (b.charAt(0) > 0 && !(c || ".").lastIndexOf(".") ? b.replace(/(\d)(?=(\d{3})+$)/g, "$1,") : b) + c; }); } alert(delimitNumbers(1234567890));
источник
Я предполагаю, что вы делаете какую-то локализацию, поэтому взгляните на этот скрипт .
источник
Использование toLocaleString ref на https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
function formatComma(value, sep = 0) { return Number(value).toLocaleString("ja-JP", { style: "currency", currency: "JPY", minimumFractionDigits: sep }); } console.log(formatComma(123456789, 2)); // ¥123,456,789.00 console.log(formatComma(123456789, 0)); // ¥123,456,789 console.log(formatComma(1234, 0)); // ¥1,234
источник
другой подход:
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; } var a = addCommas(10000.00); alert(a);
Еще один замечательный плагин: http://www.teamdf.com/web/jquery-number-format/178/
источник
Другой способ сделать это:
function addCommas(n){ var s = "", r; while (n) { r = n % 1000; s = r + s; n = (n - r)/1000; s = (n ? "," : "") + s; } return s; } alert(addCommas(12345678));
источник
Вот моя кофейная версия скрипки @ baacke, предоставленная в комментарии к @Timothy Perez
class Helpers @intComma: (number) -> # remove any existing commas comma = /,/g val = number.toString().replace comma, '' # separate the decimals valSplit = val.split '.' integer = valSplit[0].toString() expression = /(\d+)(\d{3})/ while expression.test(integer) withComma = "$1,$2" integer = integer.toString().replace expression, withComma # recombine with decimals if any val = integer if valSplit.length == 2 val = "#{val}.#{valSplit[1]}" return val
источник