Форум 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=151891)

BenderMTB 07.03.2011 22:39

Как обрезать текст в переменной?
 
Вообще есть переменная типа String, в которой содержаться текст (длинна текста не фиксирована). Как можно обрезать текст в переменной на 3 символа?

Например:
Код AS3:

Var Text:String;
Text = "Текст123";

Нужно получить переменную Text = "Текст".

wvxvw 07.03.2011 22:42

String#substring или String#substr

BenderMTB 08.03.2011 11:41

Написал вот так:
Код AS3:

Var Text:String;
Text = "Текст123";
Text = substring(Text, 0, length(Text) - 3);

Но выдаёт ошибку при компиляции:
1180: Вызов предположительно неопределенного метода substring.
1180: Вызов предположительно неопределенного метода length.

Может какого то класса не хватает?

scarbo 08.03.2011 11:44

Читаем и смотри примеры кода - http://help.adobe.com/ru_RU/AS3LCR/F...ubstring%28%29

iNils 08.03.2011 11:49

Код AS3:

var text:String = "Текст123";
text = text.substr (0, -3);
trace (text);


BenderMTB 08.03.2011 12:14

Спасибо iNils. Всё работает

Guignolo 08.03.2011 18:45

Всем доброго дня!

А у меня такой вопрос: как порезать длину выводимого текста, понятно... а вот если надо отрезать не определенное кол-во символов, а такое, чтобы при выводе оставались целые слова. Допустим, текст символов на 300. Надо выводить не больше 100, но при этом нельзя выводить в конце часть слова!

Как будет выглядеть функция?
Спасибо!

tsarapkabel 09.03.2011 17:30

Код AS3:

package {
 
        import flash.display.Sprite;
 
        public class Main extends Sprite {
 
                private var textString:String;
                private var returnString:String;
 
                public function Main () {
                        textString = "Первое слово, второе слово, пятое слово, десятое слово, траляля, а вот и обрубаемое СЛОВО";
                        trace (textString);
                        trace ("Рубим по 85 символу, это буква " + textString.charAt(85));
                        trace (getString());
 
                }
 
                private function getString():String {
                        for (var i:uint = 85; i > 0; i--) {
                                if (textString.charAt(i) == " ") {
                                        returnString = textString.substring (0, i);
                                        break;
                                }
                        }
                        return returnString;
                }
        }
}


Zebestov 10.03.2011 14:31

Код AS3:

package  {
 
        import flash.display.Sprite;
 
        public class ShortTest extends Sprite {
 
                public function ShortTest() {
                        var text:String = "Первое слово, второе слово, пятое слово, десятое слово, траляля, а вот и обрубаемое СЛОВО";
                        var word:Array = text.split(" ");
 
                        var cut:int = 85;
                        var res:String = word[0];
                        var i:int = 1;
 
                        while (word[i] && (res.length + word[i].length) <= cut) {
                                res += " " + word[i++];
                        }
 
                        trace(res);
                }
 
        }
 
}


iNils 10.03.2011 14:46

Код AS3:

/^(.{1,100})( |$)(.+)?/gm

При это брать только первую группу.

Пример
Код AS3:

test ('А у меня такой вопрос: как порезать длину выводимого текста, понятно... а вот если надо отрезать не определенное кол-во символов, а такое, чтобы при выводе оставались целые слова. Допустим, текст символов на 300. Надо выводить не больше 100, но при этом нельзя выводить в конце часть слова!')
test ('In this two-part tutorial, Adobe Senior Principal Scientist Gregg Wilensky helps you perfect your masking and compositing skills. Learn how to use Photoshop CS5 to obtain high-quality image masks and image composites using a simple workflow. See how to use a combination of selection tools, such as Quick Selection or the enhanced Color Range Selection along with the newly revised Refine Edge tool.')
test ('short')
function test (str):void {
        var strShort:String = str.replace(/^(.{1,100})( |$)(.+)?/gm, '$1');
        trace (strShort.length + ':', strShort + '...')
}



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

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