Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2011, 13:18
Интересующийся
Отправить личное сообщение для Mutagena Посмотреть профиль Найти все сообщения от Mutagena
 
Регистрация: 18.03.2010
Сообщений: 24

Преобразование числа к виду с пробелами
Привет.
Рассчитывается определённая денежная сумма, необходимо вывести её с пробелами после каждой третьей цифры, начиная справа. Есть метод toLocaleString(), который это делает, но он по разному работает в разных браузерах. Подскажите, как решить данную проблему? Есть ли плагин какой-то для этого?
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2011, 13:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

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

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

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

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

Задавайте конкретные вопросы по ходу дела.
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2011, 13:30
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

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"));

Последний раз редактировалось Matre, 22.03.2011 в 13:41.
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2011, 14:06
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Разделение разрядов числа пробелами.
Ответить с цитированием
  #5 (permalink)  
Старый 22.03.2011, 14:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Вариант )))
var a = "tyty 13788656456456456";
alert(a.replace(/(\d{1,3})(?=((\d{3})*)$)/g, " $1"));
Ответить с цитированием
  #6 (permalink)  
Старый 22.03.2011, 14:30
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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

Или непонятно зачем tyty в начале.
Ответить с цитированием
  #7 (permalink)  
Старый 22.03.2011, 14:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Kolyaj,
По вашей ссылке вариант более корректный ... tyty так просто)))
поправил ....
var a = "tyty 13788656456456456 tyty";
alert(a.replace(/(\d{1,3})(?=((\d{3})*([^\d]|$)))/g, " $1 "));
Ответить с цитированием
  #8 (permalink)  
Старый 22.03.2011, 15:30
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Kolyaj, 1:1
Ответить с цитированием
  #9 (permalink)  
Старый 22.03.2011, 16:54
Интересующийся
Отправить личное сообщение для Mutagena Посмотреть профиль Найти все сообщения от Mutagena
 
Регистрация: 18.03.2010
Сообщений: 24

Всем спасибо.
Ответить с цитированием
  #10 (permalink)  
Старый 29.07.2011, 13:42
Новичок на форуме
Отправить личное сообщение для СерЪёжа Посмотреть профиль Найти все сообщения от СерЪёжа
 
Регистрация: 29.07.2011
Сообщений: 1

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

Подскажите, пожалуйста, как должен выглядеть вот этот код, умножающий число в теге с классом '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>


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

Спасибо...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделение разрядов числа пробелами. Kolyaj Ваши сайты и скрипты 17 12.03.2020 15:57
Числа в поле для вычисления sergey-16a1 Javascript под браузер 5 19.08.2010 17:29
число 76.4705882.. сделать 76.47? (числа всегда разные) TongaG Ваши сайты и скрипты 3 19.01.2010 07:35