Форум 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)
-   -   как реализовать замену подстроки в строке? (http://www.flasher.ru/forum/showthread.php?t=104862)

Revolter 04.12.2007 01:51

как реализовать замену подстроки в строке?
 
есть строка ST. необходимо заменить все подстроки = S строкой = S1.

Для первого вхождения:
Код:

ST = ST.substr(1,ST.indexOf(S)-1) + S1 + ST.substr(ST.indexOf(S)+length(S)+1,length(ST))
это оптимальный код или есть альтернатива? если есть возможность, дайте полную функцию для замены всех S на S1 в ST.

DarkLight 04.12.2007 01:56

Код:

ST = ST.split("S").join("S1");

Revolter 04.12.2007 02:11

спасибо. а как узнать колличество вхождений S в ST ?

DarkLight 04.12.2007 02:49

Код:

var ST:String = "aaaF djshf F dlfk  Fgggg hhFg";
var S:String = "F";
var S1:String = "Z"
var tmp:Array = ST.split(S);
var numS:Number = tmp.length-1;//число вхождений
trace("Число вхожений строки "+S+" в строке "+ST+" : "+numS);
ST = tmp.join(S1);
trace("Строка после замены: "+ST);


Revolter 07.12.2007 01:19

тонкость
 
Цитата:

Сообщение от DarkLight
Код:

ST = ST.split("S").join("S1");

как сделать чтобы замена была нечувствительной к регистру букв?
Т.е. у меня такая ситуация:

Код:

ST = "Пример пример";
S = "пример";
S1 = "<font color=""#FF000"">"+S+"</font>";

ST = ST.split("S").join("S1");

Данный код выделит(заменит) только второе слово. Как сделать так чтобы выделялось и первое, причем без потери регистра букв?

iNils 07.12.2007 01:25

Пройтись по обоим вариантам.

Revolter 07.12.2007 10:20

Цитата:

Сообщение от iNils
Пройтись по обоим вариантам.

проблема в том что "Пример" может быть "ПриМеР", т.е. не известно где и сколько там будет заглавных букв. как тогда решить эту задачу?

CorC 07.12.2007 10:21

String.toLowerCase

Revolter 07.12.2007 10:32

не подходит - важно сохранить регистр букв

etc 07.12.2007 10:35

Тогда пишите более сложный преобразователь.


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

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