![]() |
|
||||||||||
|
|||||
|
Имеется текстовое поле, с определенным текстом.
Требуется в любой позиции этого текста изменить символ. Подскажите пожалуйста как это сделать. |
|
|||||
|
Регистрация: Apr 2004
Адрес: Минск
Сообщений: 176
|
функции для работы со строками во флаше слабоваты, приходится писать свои.
Вот, например, функция, которая заменяет в строке txt_str все символы replace_what на символы replace_to function replaceSymbol(txt_str, replace_what, replace_to){ var t_str=""; var num=txt_str.length; var i=0; for (i=0;i<num;i++){ if(txt_str.charAt(i)==replace_what) {t_str+="replace_to'";} else{t_str+=txt_str.charAt(i);} } return t_str; } это не альтернатива функции string_replace() для других языков программирования, так как она замещает отдельные символы, а не подстроки. Но ее можно преобразовать для твоих нужд function replacePosition(txt_str, position, replace_to){ var t_str=""; var num=txt_str.length; var i=0; for (i=0;i<num;i++){ if(i==position){ t_str+=replace_to; } else{t_str+=txt_str.charAt(i);} } return t_str; } И использовать text_field.text=replacePosition(text_field.text,5,"w"); Кстати, может быть, кто-то напишет функцию string_replace() для замены подстроки в строке?
__________________
Юра |
|
|||||
|
[++]
|
function replace ( STR:String , WAS:String , NEED:String ):String
{
var RES:String;
var j:Number = 0;
var TEMP:String;
var ARR:Array = new Array ();
for ( i:Number = 0 ; i < STR.length ; i++ )
{
TEMP = STR.slice( i , i + WAS.length );
if ( TEMP == WAS )
{
ARR[j] = NEED;
i += WAS.length - 1;
}
else
{
ARR[j] = STR.charAt( i );
}
j++;
}
RES = ARR.join( "" );
return RES;
}
|
|
|||||
|
Регистрация: Apr 2004
Адрес: Минск
Сообщений: 176
|
Спасибо.
Кстати, я вынес тему строковых функций в отдельный топик в разделе ActionScript2. Тут есть, что обсуждать. К примеру - поддержка регулярных выражений в той же string_replace()
__________________
Юра |
![]() |
Часовой пояс GMT +4, время: 11:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|