![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
|
Вход:
holder - строка, searchfor - подстрока, которую меняем, replacement - на что меняем 1. работает, но чувствителен к регистру 2. работает, но не правильно отрабатывает на этом примере: holder = [LABEL test] searchfor=[SCRIPT test.qsp] replacement={a=1; output a} Может у кого есть проверенный готовый вариант? |
|
|||||
|
можно как то по аналогии попробовать:
public static function paintHTML_Rec($value:String, $pattern:String, $color:String = "00CCFF"):String { var sIndex:int = $value.toLowerCase().indexOf($pattern.toLowerCase()); if(sIndex == -1) return $value; var eIndex:int = sIndex + $pattern.length; var result:String = $value.substring(0, sIndex) + "<font color=\"#" + $color + "\">" + $value.substring(sIndex, eIndex) + "</font>" + paintHTML_Rec($value.substring(eIndex, $value.length), $pattern); return result; } |
|
|||||
|
Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
|
Ну идея в целом понятна, только вот у тебя предполагается, что всего одна замена во всей строке, а у меня их может быть много, например:
"The more the better", меняем "The" и "the" на "then" PS Вроде бы простая задача, в других языках реализована, а тут прям гемор какой то... |
|
|||||
|
[+4 06.05.14]
|
Последний раз редактировалось in4core; 19.08.2010 в 15:13. |
|
|||||
|
[+4 06.05.14]
|
что как ? задаем че риплейсим и че ищем - [The,the,fuck,off] ищем , [0,0,1,2] реплейсим )))
Добавлено через 3 минуты например Последний раз редактировалось in4core; 19.08.2010 в 15:14. |
|
|||||
|
по моему теперяшняя функция это не тоже самой что было до исправления?)
и всеравно трейс вы походу не проверяли? var str = ' Привет детишки, %%% будет крышка, если крышка будет на?м**' splitParams(str,['%','П','и'],['^','^',')']) trace(str); требуется предусмотреть все варианты? ------------------------------------------------------------------ уф от делать нечего написал как требуется: var str:String = " qwerTYqwerty Qwerty qWerty qwErty ..."; var pattern:String = "qwerty"; function recReplaceSrt($string:String, $pattern:String, $newValue:String):String { var sIndex:int = $string.toLowerCase().indexOf($pattern.toLowerCase()); if(sIndex == -1) return $string; var eIndex:int = sIndex + $pattern.length; var result:String = $string.substring(0, sIndex) + $newValue + recReplaceSrt($string.substring(eIndex, $string.length), $pattern, $newValue); return result; } trace(recReplaceSrt(str, pattern, "11")); Последний раз редактировалось nOobCrafter; 19.08.2010 в 15:41. |
|
|||||
|
Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
|
твой вариант - это первый вариант из моей первой мессаги, модифицированный, он не решает проблему регистронезависимости
Добавлено через 20 минут Работает, спасибо Вот только рекурсия меня смущает, перепишу в одном цикле, плюс оптимизирую код (чтоб несколько раз в lowercase не гонять) |
|
|||||
|
Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
|
Тесты погонял, все ок, переписывать не стал, так устраивает, производительность не особо нужна оказалась
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|