Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Разделить число на разряды (https://javascript.ru/forum/events/24601-razdelit-chislo-na-razryady.html)

simple 07.01.2012 09:54

Разделить число на разряды
 
Нашел в сети вот такое регулярное выражение:
str.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');

Не знаете что тут можно добавить или удалить чтобы она, число после десятичной точки на разряды не разделяла, а то это выглядит так:
1 234 567.1 234

Pavel M. 07.01.2012 12:30

если строка содержит число с десятичной точкой, то просто уберите конец строки $
alert('123456789.123456789'.replace(/(\d)(?=(\d\d\d)+([^\d]))/g, '$1 '));

nerv_ 07.01.2012 14:09

Pavel M., а если не содержит?)

Пока приходит в голову только это
var x = "1234567890.123456789";
			
x = x.replace(/.+?(?=\D|$)/, function(f) {
	return f.replace(/(\d)(?=(?:\d\d\d)+$)/g, "$1 ");
});
alert(x);

Aetae 07.01.2012 16:00

Цитата:

Сообщение от nerv_ (Сообщение 148567)
Pavel M., а если не содержит?)

Т.е. не содержит?:blink:

nerv_ 07.01.2012 16:22

Цитата:

Сообщение от Pavel M.
если строка содержит число с десятичной точкой, то просто уберите конец строки $

т.е. число целое)

Накопипастил для примера :)
alert('123456789.123456789'.replace(/(\d)(?=(\d\d\d)+([^\d]))/g, '$1 '));
alert('123456789'.replace(/(\d)(?=(\d\d\d)+([^\d]))/g, '$1 '));

var x = "1234567890.123456789";
x = x.replace(/.+?(?=\D|$)/, function(f) {
	return f.replace(/(\d)(?=(?:\d\d\d)+$)/g, "$1 ");
});
alert(x);

var x = "1234567890";
x = x.replace(/.+?(?=\D|$)/, function(f) {
	return f.replace(/(\d)(?=(?:\d\d\d)+$)/g, "$1 ");
});
alert(x);

Как-то не правильно тут статусы форум пишет: у меня - Профессор (кислых щей), а у Вас - Любитель :D

Aetae 07.01.2012 16:26

Статус можно поменять.)
А 2 replace - это не спортивно.

nerv_ 07.01.2012 16:42

Цитата:

Сообщение от Aetae
А 2 replace - это не спортивно.

покажИте как надо :) (если есть время и желание)

simple 07.01.2012 16:47

nerv_ спасибо, подойдет твое решение..главное работает )
вот еще вопрос почему я js не могу сделать число с дробной частью при делении, например в mysql при делении числа скажем 10000/100=100.0000

Aetae 07.01.2012 16:53

toFixed

simple 07.01.2012 16:55

мне не нужен .toFixed мне нужно именно делением делать дробь так как данные хранятся в целом виде в БД...числа если у них на конце не ноль делятся...к примеру 1001/100=10.01 а 1000/100 = 10 ((


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