Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Форматировать число в денежный вид
 
 автор: admiral   (19.02.2012 в 04:17)   письмо автору
 
 

В зависимости от числа правильно его сформатировать в денежный вид.
т.е. если это миллион
число 1000000
деньги 1 000 000
если от 10000 до миллиона, то 120 360
если меньше 100000 то 95 000

помогите с функций

  Ответить  
 
 автор: Sfinks   (19.02.2012 в 09:39)   письмо автору
 
   для: admiral   (19.02.2012 в 04:17)
 

можно регуляркой
replace( /(\d)(\d{3}([^\d]|$))/ , '$1 $2' );

Для > миллиона повторить 2 раза, миллиарда 3 раза и т.д.

  Ответить  
 
 автор: AlexSol   (19.02.2012 в 10:10)   письмо автору
 
   для: admiral   (19.02.2012 в 04:17)
 

_t ="1000000";
_t = _t.replace(/(\d{1,3}(?=(\d{3})+(?:\.\d|\b)))/g,"\$1"+' ');

  Ответить  
 
 автор: Sfinks   (19.02.2012 в 11:15)   письмо автору
 
   для: AlexSol   (19.02.2012 в 10:10)
 

а g - это аналог preg_replace_all?

  Ответить  
 
 автор: cheops   (19.02.2012 в 11:19)   письмо автору
 
   для: Sfinks   (19.02.2012 в 11:15)
 

Собственно, вероятно имелось в виду preg_match_all(), ведь replace-методы вроде preg_replace() действует везде одинаково - заменяет все, что находят (нет надобности для него вводить all-вариант).

  Ответить  
 
 автор: Sfinks   (19.02.2012 в 11:25)   письмо автору
 
   для: cheops   (19.02.2012 в 11:19)
 

А, ну да. Оговорился. Но тогда тем более не понятно зачем "g"? Я на сколько вижу в описании РВ для PERL:
g - заменить все одинаковые компоненты, а не один, как в отсутствии ключа g

  Ответить  
 
 автор: ЯСА   (19.02.2012 в 13:05)   письмо автору
 
   для: Sfinks   (19.02.2012 в 11:25)
 

Плохое описание, неправильное.

Правильным (и для PHP, и для PERL, и для Javascript) будет следующее:
g - модификатор, выполняющий глобальный поиск (глобальную замену) в строке.
При отсутствии модификатора g поиск (замена) ограничится первым с начала строки совпадением.

  Ответить  
 
 автор: Sfinks   (19.02.2012 в 15:59)   письмо автору
 
   для: ЯСА   (19.02.2012 в 13:05)
 

В общем я проверил, все и правы и не правы =)

cheops:
> replace-методы вроде preg_replace() действует везде одинаково - заменяет все, что находят
нет, в JS в replace если не указать "g" заменяется только первое вхождение.

ЯСА:
> Правильным (и для PHP, и для PERL, и для Javascript) будет следующее
В PHP такого нет. В PHP preg_replace() заменяет все совпадения без всякого "g"

кстати
g - модификатор, выполняющий глобальный поиск (глобальную замену) в строке.
При отсутствии модификатора g поиск (замена) ограничится первым с начала строки совпадением.
это тоже самое, что написано у меня, только другими словами, более четко.

  Ответить  
 
 автор: ЯСА   (19.02.2012 в 16:25)   письмо автору
 
   для: Sfinks   (19.02.2012 в 15:59)
 

>"это тоже самое, что написано у меня, только другими словами, более четко."

ЧЁТКОСТЬ и ОДНОЗНАЧНОСТЬ - это и есть то, что простое "бла-бла-бла" отличает от "ОПРЕДЕЛЕНИЯ".

Потому ваше "типа определение" я и назвал "плохим и неправильным", ибо оно нечёткое и может неоднозначно трактоваться.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования