Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Разделение разрядов числа пробелами. (https://javascript.ru/forum/project/3100-razdelenie-razryadov-chisla-probelami.html)

Kolyaj 18.03.2009 14:18

Разделение разрядов числа пробелами.
 
Вдруг кто не знает. Разделить числа в тексте пробелами по разрядам поможет такая строчка кода
var str = 'Lorem ipsum 234456234 Lorem ipsum 7345287346 asdfae';
alert(str.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 '));

x-yuri 05.06.2009 03:04

Вдруг кто не знает. Разряды нужно не пробелами разделять, а тонкими шпациями — приблизительно треть пробела ;)

Kolyaj 05.06.2009 10:08

x-yuri,
ну тогда бы уж код символа показал.

x-yuri 05.06.2009 20:46

U+2009,  
только я сам на практике не пользовался :-?

B~Vladi 09.06.2009 10:11

Нашел ещё вот такое:
      (короткий пробел)

x-yuri 09.06.2009 13:44

пробелы найти не проблема. Ты знаешь когда твой короткий пробел использовать надо?

B~Vladi 09.06.2009 13:50

нет, первый раз это вижу

Octane 09.06.2009 19:20

Всё (или почти всё) о пробеле

sktemp 11.07.2012 12:55

Цитата:

Сообщение от Kolyaj (Сообщение 14587)
Вдруг кто не знает. Разделить числа в тексте пробелами по разрядам поможет такая строчка кода
var str = 'Lorem ipsum 234456234 Lorem ipsum 7345287346 asdfae';
alert(str.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 '));

Я пытаюсь воспользоваться этим методом:

var str = "3830000"; 
var out = str.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, " ");


На выходе я получаю значение 83 000.

Как исправить?

B@rmaley.e><e 11.07.2012 13:18

Пользоваться правильным методом
var str = "3830000"; 
alert(str.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 '));

sktemp 11.07.2012 13:49

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 188039)
Пользоваться правильным методом
var str = "3830000"; 
alert(str.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 '));

Спасибо!

Vyacheslav.Y 05.11.2015 08:24

Подскажите как применить к числовому типу?

рони 05.11.2015 08:38

Vyacheslav.Y,
''+7 сделать число строкой

ruslan_mart 05.11.2015 10:11

Цитата:

Сообщение от sktemp
Спасибо!

var str = '3830000'; 
alert(str.replace(/(\d)(?=(\d{3})+(\D|$))/g, '$1 '));


Или вообще:
alert( 3830000..toLocaleString() );


Цитата:

Сообщение от Vyacheslav.Y
Подскажите как применить к числовому типу?

String(123) или 123..toString()


Для обратного преобразования:
alert( +'3 830 000'.replace(/\s/g, '') );

Vyacheslav.Y 05.11.2015 11:57

Ruslan_xDD,
Я делал как Вы посоветовали но у меня не получилось.
Подскажите на примере пожалуйста. У меня переменная revenue должна выводиться с пробелом каждые три символа:
function recount() {
        revenue = (client+check+time)*tarif;
        result_outptut.html(revenue + ' руб/мес');
    };


Полный код

ruslan_mart 05.11.2015 12:22

function recount() {
        var revenue = String((client + check + time) * tarif).replace(/(\d)(?=(\d{3})+(\D|$))/g, '$1 ');
        result_outptut.html(revenue + ' руб/мес');
};

akklimatizator 12.03.2020 15:49

каким образом это реализовать, если на странице больше 1 строки с цифрами, например, каталог товаров с ценами?

рони 12.03.2020 15:57

akklimatizator,
https://javascript.ru/forum/showthre...698#post515699


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