Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.07.2012, 22:43
Новичок на форуме
Отправить личное сообщение для Ogara Посмотреть профиль Найти все сообщения от Ogara
 
Регистрация: 12.07.2012
Сообщений: 4

Как правильно заменить подстроку.
Подскажите как правильно в строке найти подстроку и заменить ее.
Вот пример строки:

var str = 'avtor:ivan+kino:dom 2+kniga:100%+';


Так вот в этой строке мы знаем ключи avtor, kino, kniga и знаем что пара всегда разделена : и заканчивается + . Надо найти подстроки ivan, dom 2, 100% и заменить на любые другие строки. Пытался с помощью регулярных выражений хотя бы достать эти строки по одной, например:

var pat = new RegExp("kniga:(.*?)\\+", "ig");
var my_sstring = pat.exec(str);


получал что my_sstring содержит ['kniga:100%', '100%'] вместо только '100%' . Помогите правильно решить проблему.
Ответить с цитированием
  #2 (permalink)  
Старый 12.07.2012, 23:16
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var str = 'avtor:ivan+kino:dom 2+kniga:100%+';

var arr = str.split("+"),
    part, parts = {};

while( part = arr.shift() ) {

    part = part.split(":");

    if ( part[0] ) {
        parts[ part[ 0 ] ] = part[ 1 ] || "";
    }
}

alert( [ parts.avtor, parts.kino, parts.kniga ] );
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 12.07.2012 в 23:19.
Ответить с цитированием
  #3 (permalink)  
Старый 12.07.2012, 23:16
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Ogara Посмотреть сообщение
Подскажите как правильно в строке найти подстроку и заменить ее.
Вот пример строки:

var str = 'avtor:ivan+kino:dom 2+kniga:100%+';


Так вот в этой строке мы знаем ключи avtor, kino, kniga и знаем что пара всегда разделена : и заканчивается + . Надо найти подстроки ivan, dom 2, 100% и заменить на любые другие строки. Пытался с помощью регулярных выражений хотя бы достать эти строки по одной, например:

var pat = new RegExp("kniga:(.*?)\\+", "ig");
var my_sstring = pat.exec(str);


получал что my_sstring содержит ['kniga:100%', '100%'] вместо только '100%' . Помогите правильно решить проблему.
var str = 'avtor:ivan+kino:dom 2+kniga:100%+', new_str = "";
str = str.split("+");
for (i=0; i < str.length; i++) {
	if (str[i] == "") {  }
	else { new_str += str[i].split(":")[0]+":"+i+"+"; }
}
alert(new_str);
Ответить с цитированием
  #4 (permalink)  
Старый 13.07.2012, 03:12
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Не ясная задача:
а) Каким макаром представлен массив поисковых слов ?
b) Заменяемые слова вводятся в ручном режиме или существует массив ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
cookies как правильно сохранить Berowz Общие вопросы Javascript 2 13.03.2012 22:34
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14
Подскажите как правильно оформить код frolvict Общие вопросы Javascript 4 30.04.2010 10:51
Как правильно оформить Send() Алекс97 AJAX и COMET 20 30.10.2008 19:19