Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   text replace (http://www.flasher.ru/forum/showthread.php?t=52229)

DIGIT 02.12.2003 21:21

text replace
 
как с помощъю ActionScript заменить буквы в тексте, например в РНР есть функция str_replace();

есть-ли наподобе такой функции во Flash?

mishinaelle 02.12.2003 21:25

нету
используй сочетание функций substr и indexOf

DIGIT 02.12.2003 21:57

хм... разве indexOf(); заменяет символы?

а есть пример как это делается?

Ravescape 02.12.2003 22:43

Код:

String.prototype.searchReplace=function(find,replace) {
        var result = this.split(find);
        return result.join(replace);
}


mishinaelle 03.12.2003 12:47

кстати варинат от Ravescape очень хорош :)

а indexOf не заменяет, а ищет позицию нужного символа. Зная позицию символа с помощью substr можно заново пересобрать строку

хотя, опять же повторюсь: способ от Ravescape мне теперь более симпатичен ;)

ccwds 08.08.2004 18:28

А можно ли продолжить этот пример от Ravescape?

ОK. String.prototype.searchReplace=function(find,replace) {
var result = this.split(find);
return result.join(replace);
}

mytext = "Не только мона, но и нуна".
Вот хоцца все "на" заменить на "жно".

Нашел даже более навороченный код -
Код:

String.prototype.searchreplace=function(finder,replace) {
        var daString=this
        var counter=0;
        while (counter<daString.length) {
                var startPos = daString.indexOf(finder, counter);
                if (startPos == -1) {
                        break;
                } else {
                        var before=daString.substr(0,startPos)
                        var after=daString.substr(startPos+finder.length,daString.length)
                        daString=before+replace+after
                        var counter=before.length+replace.length
                                       
                }
        }
        return daString;
}

Ну и как его юзать-то?

ccwds 08.08.2004 18:45

Сорри, опять брякнул, не подумав. Нельзя ли увеличить время возможности редактирования своего сообщения хотя бы до часа? :) Но пример, который я нарыл, может пригодиться кому-то.

etc 08.08.2004 20:19

Ну я обычно пользуюсь такой вещью:

Код:

String.prototype.replace = function (i1,i2) {
 return this.split(i1).join(i2);
}

Либо такой:
Код:

String.prototype.replace = function (i1,i2) {
this = this.split(i1).join(i2);
}


Nox Noctis 09.08.2004 17:15

Цитата:

Оригинал написал(а) ETC
Либо такой:
Код:

String.prototype.replace = function (i1,i2) {
this = this.split(i1).join(i2);
}


мысль хорошая, только это не работает, извините :)) нельзя this переписать изнутри метода.

etc 09.08.2004 22:12

Да? А у меня работает! Пользуюсь Flash 7.2 и всё гут!


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

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