Просмотр полной версии : text replace
как с помощъю ActionScript заменить буквы в тексте, например в РНР есть функция str_replace();
есть-ли наподобе такой функции во Flash?
mishinaelle
02.12.2003, 21:25
нету
используй сочетание функций substr и indexOf
хм... разве 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 мне теперь более симпатичен ;)
А можно ли продолжить этот пример от 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;
}
Ну и как его юзать-то?
Сорри, опять брякнул, не подумав. Нельзя ли увеличить время возможности редактирования своего сообщения хотя бы до часа? :) Но пример, который я нарыл, может пригодиться кому-то.
Ну я обычно пользуюсь такой вещью:
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 переписать изнутри метода.
Да? А у меня работает! Пользуюсь Flash 7.2 и всё гут!
Не, пардон, не работает :( Это у меня с Array подобная вещь работала... сорри...
Nox Noctis
09.08.2004, 23:27
нене
это и НЕ МОЖЕТ работать ни с каким объектом.
конструкция вида this = ... не работает ни при каких обстоятельствах.
но в случае массива можно воспользоваться методом Array.splice, который редактирует исходный массив
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.