Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Trim функция в ActionScript (http://www.flasher.ru/forum/showthread.php?t=94742)

OracleN 18.04.2007 20:00

Trim функция в ActionScript
 
Господа, а не подскажете ли вы есть ли здесь trim функция (надеюсь ее назначение ясно) или надо самому создвать ее?

etc 18.04.2007 20:05

Самому.

CorC 19.04.2007 10:03

Варианты по этой функции уже были предложены на этом форуме, ищите

OracleN 19.04.2007 11:31

Цитата:

Сообщение от CorC
Варианты по этой функции уже были предложены на этом форуме, ищите

Сам решил написать, вот что получилось
Код:

function rtrim(matter:String,inSymbol) {
  if (inSymbol == undefined) inSymbol = ' ';
  while (matter.substr(matter.length-inSymbol.length,inSymbol.length) == inSymbol) {
                matter = matter.substr(0,matter.length - inSymbol.length) 
  }
    return matter;
}

function ltrim(matter:String,inSymbol) {
  if (inSymbol == undefined) inSymbol = ' ';
  while (matter.substr(0,inSymbol.length) == inSymbol) {
                matter = matter.substr(inSymbol.length,matter.length) 
  }
    return matter;
}

function trim(matter,inSymbol) {
    return ltrim(rtrim(matter,inSymbol),inSymbol);
}


iNils 19.04.2007 11:38

Цитата:

Сообщение от OracleN
Сам решил написать, вот что получилось

Ужас. Вот метод работающий в 20 раз быстрее.
Код:

function trimss (str:String):String {
        str = new String (str);
        var sx:Number = 0;
        var ex:Number = str.length;
        while (str.charAt (sx) == " ") {
                sx++;
        }
        while (str.charAt (ex - 1) == " ") {
                ex--;
        }
        str = str.substring (sx, ex);
        return str;
}

Хотя возможно не предел.

OracleN 19.04.2007 11:45

Цитата:

Сообщение от iNils
Ужас. Вот метод работающий в 20 раз быстрее.
Код:

function trimss (str:String):String {
        str = new String (str);
        var sx:Number = 0;
        var ex:Number = str.length;
        while (str.charAt (sx) == " ") {
                sx++;
        }
        while (str.charAt (ex - 1) == " ") {
                ex--;
        }
        str = str.substring (sx, ex);
        return str;
}

Хотя возможно не предел.

Ха.. этот метот убирает только пробелы, а предыдущий имеет возможность убрать любые символы. И почему это в 20 раз быстрее. А не в 2 или даже не в 1.5

etc 19.04.2007 11:47

Код:

function trimss (str:String,symbol:String):String {
        str = new String (str);
        symbol = symbol.length ? symbol : ' ';
        var sx:Number = 0;
        var ex:Number = str.length;
        while (str.charAt (sx) == symbol) {
                sx++;
        }
        while (str.charAt (ex - 1) == symbol) {
                ex--;
        }
        str = str.substring (sx, ex);
        return str;
}

Уверен?

OracleN 19.04.2007 11:53

Использовать здесь charAt - нельзя, ибо sumbol может быть равныа 'qw' или другим символам (не одному)

iNils 19.04.2007 11:55

Цитата:

Сообщение от OracleN
Ха.. этот метот убирает только пробелы, а предыдущий имеет возможность убрать любые символы.

Ну __etc уже доказал, что это не так:)
Цитата:

Сообщение от OracleN
И почему это в 20 раз быстрее. А не в 2 или даже не в 1.5

Линейкой измерил :D Запустил обе функции в цикле 1000 раз и посмотрел время необходимое для реализации.

OracleN 19.04.2007 11:58

Да ну, всеравно символ должен быть с length = 1.


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

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