![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
|
|
|||||
|
Modus ponens
|
Зачем сохранять регистр, если подстроки все равно будут удалены?
Автор, обьясни пожалуйста, почему String.toLowerCase() не устраивает? Вот, наваял заодно что-то... ток зачем это нужно - не пойму %) var search_str:String = "abcd";
var replace_str:String = "efgh";
var searched_str:String = "abcd, Abcd, abCD, dcba";
function strConvert(s_str:String, r_str:String, rp_str:String):String {
var i:Number = 0;
var rp_arr:Array = rp_str.split("");
while (i<s_str.length) {
var check_sum:String = "";
var mtx:Array = [];
while (s_str.charAt(i).toLowerCase() == r_str.charAt(0) || check_sum!="") {
check_sum += s_str.charAt(i);
if (s_str.charAt(i).toLowerCase() != s_str.charAt(i)) {
mtx.push(true);
} else {
mtx.push(false);
}
i++;
if(i>s_str.length)break;
if (check_sum.length == r_str.length) {
var j:Number = 0;
var sb_str:String = "";
while (j<rp_arr.length) {
mtx[j] ? sb_str += rp_arr[j].toUpperCase() : sb_str += rp_arr[j];
j++;
}
s_str = s_str.slice(0, i-r_str.length)+sb_str+s_str.slice(i, s_str.length);
mtx=[];
check_sum ="";
}
}
i++;
}
return s_str;
}
trace(strConvert(searched_str, search_str, replace_str));
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 07.12.2007 в 16:30. |
|
|||||
|
Modus ponens
|
Я просто все равно не совсем понимаю, какого результата желает автор...
Пример: "Василий ПупкиН утоп." меняем совпадения "пупкин" на "ло". результат: "Василий Ло утоп". (от того, что последняя буква в фамилии была заглавной ничего не изменилось... или так: "Все страны бывшего СССР пережили экономический кризис". меняем "ссср" на "Советского Союза". получаем: "Все страны бывшего СОВЕтского союза пережили экономический кризис".
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 07.12.2007 в 16:43. |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 12
|
Цитата:
сделал (allT - текст где надо выделить search_str): function mark(allT:String;search_str:String){
lenT = length(allT);
allTemp = allT.toLowerCase();
searchTemp = search_str.toLowerCase();
slen = length(search_str);
num = 0; // с какой позиции искать
n = 0; // кол-во найденых
index = allTemp.indexOf(searchTemp, num); // индекс текущего вхождения
while (index>=0) {
allT = allT.substr(0,index + n*29) + '<font color="#0000FF">' + allT.substr(index+n*29,slen) + '</font>' + allT.substr(index+slen+n*29 ,length(allT));
n++;
num = index+slen;
index = allTemp.indexOf(searchTemp, num); // индекс текущего вхождения
};
return allT
};
Последний раз редактировалось iNils; 07.12.2007 в 18:18. |
|
|||||
|
Modus ponens
|
var given_str:String = "<font color='#008080'>Hier kommt die Sonne, Hier kommt die Sonne. Rammstein (c)</font>";
var search_str:String = "sOnNe";
var _txt:TextField = _root.createTextField("_txt",0,0,0,200,200);
_txt.border = true;
_txt.multiline = true;
_txt.wordWrap = true;
_txt.html = true;
_txt.htmlText = given_str;
function searchAndReplace(s_str:String, r_str:String):String {
r_str = r_str.toLowerCase();
var n:Number = 0;
var i:Number = 0;
var j:Number = 0;
while(i<s_str.length){
if(s_str.charAt(i).toLowerCase()==r_str.charAt(0) || n!=0){
trace("found at "+i+" | "+s_str.charAt(i));
if (s_str.charAt(i).toLowerCase() == r_str.charAt(j)){
trace("processing "+s_str.charAt(i).toLowerCase());
n++;
j++;
} else {
n=0;
}
if(n == r_str.length){
s_str = s_str.slice(0,i-r_str.length)+"<font color='#800000'>"+s_str.slice(i-r_str.length,i+1)+"</font>"+s_str.slice(i+1,s_str.length);
i+=29+n;
n=0;
j=0;
}
}
i++;
}
return s_str;
}
_txt.htmlText = searchAndReplace(given_str,search_str);
__________________
Hell is the possibility of sanity |
|
|||||
|
Цитата:
__________________
"We Are The Champions My Friends!" Queen |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|