Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   обработка текста перед выводом на экран (http://www.flasher.ru/forum/showthread.php?t=132402)

dsQuadro 11.11.2009 12:59

обработка текста перед выводом на экран
 
у меня вычисляется значение... бывает многозначное, а бывает и 0, которое надо вывести в TextField... как сделать чтобы каждые 3 знака с конца ставился пробел для лучшей читабельности... тоесть выводилось не 1000000 а 1 000 000

ramshteks 11.11.2009 13:26

как выводить значения вы знаете, и что такое текстфилд тоже. что то даже вычисляете. Так что за вопрос?? циклы вам в помощь.

marat_sa 11.11.2009 13:29

Код AS3:

public static function addSeparatorToPrice(num:int, separator:String = " "):String {
        var pos:int = num.toString().length - Math.floor((num.toString().length - 1) / 3) * 3;
        var str:String = num.toString().substr(0, pos);
 
        while (pos < num.toString().length) {
                str += separator + num.toString().substr(pos, 3);
                pos += 3;
        }
        return str;
}

=)

dsQuadro 11.11.2009 13:51

Цитата:

Сообщение от marat_sa (Сообщение 864758)
=)

спасибо!

etc 11.11.2009 14:07

Чуть более красивое, но тоже жесть:
Код AS3:

function toPrice(price:Number):String {
        var s:String = price.toString();
        if (s.length < 4) return s;
        var n:uint = s.length % 3;
        if (!n) return s.replace(/(\d{3})(?=.+)/g, '$1 ');
        return s.substr(0, n) + s.substr(n).replace(/(\d{3})/g, ' $1');
}
trace(toPrice(1470000));


marat_sa 11.11.2009 14:13

Говорила мне мама учи RegExp'ы...
Мой вариант функции еще с AS2 механизма портирован без особых изменений, давно в Common лежит...

etc 11.11.2009 14:28

Угу, только вот он жесткач полный, можно было проще и быстрее сделать.

dsQuadro 11.11.2009 15:09

сделал как в 3-ем посте ибо его больше понимаю... все работает... спасибо!

где можно почитать про формирование подобных строк: /(\d{3})/g
если соберетесь посылать на поиск, то скажите что искать... как это называется?

Felicast 11.11.2009 15:42

regexp

dsQuadro 11.11.2009 15:48

спасибо!


Часовой пояс GMT +4, время: 18:42.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.