Как правильно заменить подстроку.
Подскажите как правильно в строке найти подстроку и заменить ее.
Вот пример строки: 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%+'; 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 ] ); |
Цитата:
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); |
Не ясная задача:
а) Каким макаром представлен массив поисковых слов ? b) Заменяемые слова вводятся в ручном режиме или существует массив ? |
Часовой пояс GMT +3, время: 21:21. |