Как правильно заменить подстроку.
Подскажите как правильно в строке найти подстроку и заменить ее.
Вот пример строки: 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, время: 17:36. |