Показать сообщение отдельно
Старый 07.12.2007, 17:46
Revolter вне форума Посмотреть профиль Отправить личное сообщение для Revolter Найти все сообщения от Revolter
  № 15  
Ответить с цитированием
Revolter

Регистрация: Nov 2007
Сообщений: 12
Цитата:
Сообщение от wvxvw
Я просто все равно не совсем понимаю, какого результата желает автор...
Пример: "Василий ПупкиН утоп."
меняем совпадения "пупкин" на "ло".
результат: "Василий Ло утоп". (от того, что последняя буква в фамилии была заглавной ничего не изменилось...
или так: "Все страны бывшего СССР пережили экономический кризис".
меняем "ссср" на "Советского Союза".
получаем: "Все страны бывшего СОВЕтского союза пережили экономический кризис".
У меня реализован поиск - сообщается сколько искомых строк найдено в файлах поиска. Далее юзер выбирает какой файл просмотреть. Файл загружается в TextField с включенным html. Искомое слово выделяется цветом - <font color="#0000FF">искомое слово</font>. Проблема в том, чтобы сделать эту замену нечувствительной к регистру. То есть чтобы "ИсКОмОе СЛоВо" менял на "<font color="#0000FF">ИсКОмОе СЛоВо</font>" и т.п.

сделал (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.