Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Преобразование числа к виду с пробелами (https://javascript.ru/forum/jquery/15988-preobrazovanie-chisla-k-vidu-s-probelami.html)

Mutagena 22.03.2011 13:18

Преобразование числа к виду с пробелами
 
Привет.
Рассчитывается определённая денежная сумма, необходимо вывести её с пробелами после каждой третьей цифры, начиная справа. Есть метод toLocaleString(), который это делает, но он по разному работает в разных браузерах. Подскажите, как решить данную проблему? Есть ли плагин какой-то для этого?

Gvozd 22.03.2011 13:25

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.

Matre 22.03.2011 13:30

function abc(n) {
	return (n + "").split("").reverse().join("").replace(/(\d{3})/g, "$1 ").split("").reverse().join("").replace(/^ /, "");
}

alert( abc("13788656456456456") );


Вот ещё один вариант, в 4 раза быстрее работает:

function abc2(n) {
	n += "";
	n = new Array(4 - n.length % 3).join("U") + n;
	return n.replace(/([0-9U]{3})/g, "$1 ").replace(/U/g, "");
}

alert(abc2("13788656456456456"));

Kolyaj 22.03.2011 14:06

http://javascript.ru/forum/project/3...probelami.html

рони 22.03.2011 14:18

Вариант )))
var a = "tyty 13788656456456456";
alert(a.replace(/(\d{1,3})(?=((\d{3})*)$)/g, " $1"));

Kolyaj 22.03.2011 14:30

рони,
var a = "tyty 13788656456456456 tyty";
alert(a.replace(/(\d{1,3})(?=((\d{3})*)$)/g, " $1"));

Или непонятно зачем tyty в начале.

рони 22.03.2011 14:47

Kolyaj,
По вашей ссылке вариант более корректный ... tyty так просто)))
поправил ....
var a = "tyty 13788656456456456 tyty";
alert(a.replace(/(\d{1,3})(?=((\d{3})*([^\d]|$)))/g, " $1 "));

Matre 22.03.2011 15:30

Kolyaj, 1:1

Mutagena 22.03.2011 16:54

Всем спасибо.

СерЪёжа 29.07.2011 13:42

Здравствуйте!

Подскажите, пожалуйста, как должен выглядеть вот этот код, умножающий число в теге с классом 'i-price' (взят отсюда):

<script type="text/javascript">
var els = document.getElementsByTagName('p');
for (var i = 0; i < els.length; i++) {
    if (els[i].className == 'i-price') {
        els[i].innerHTML = els[i].innerHTML.replace(/([\d.]+) USD/, function(all, price) {
            return (parseFloat(price) * 35) + ' руб.';
        });
    }
}
</script>


чтобы число выводилось уже разделённым на разряды.

Спасибо...


Часовой пояс GMT +3, время: 05:32.