при такой выборке, почему пропадают последние теги
var str = '*text : текст *html_1: <p>текст*</p>: *title: заголовок текст *tag: text1 *tag2: text'; считывает *title: заголовок текст, а то что дальше не распознает |
Цитата:
в каком браузере и что пропало? ["text", " текст ", "html_1", " <p>текст*</p>: ", "title", " заголовок текст ", "tag", " text1 ", "tag2", " text"] |
Цитата:
а, можно как-то сразу преобразовать строку из JSON.stringify в объект или массив чтоб получить: ключ - значение (тег - текст тега) |
Цитата:
Цитата:
Цитата:
|
Цитата:
Необходимо на выходе получить массив где в роли ключа тег, а значение = текст тега Можно конечно обойти циклом и записать первое значение в ключ, а второе в value, но выглядит не надежно
var str = '*text : текст *html_1: <p>текст*</p>: *title: заголовок текст * tag: text1 *tag2: text';
str = str.split(/\*\s?(\w+)\s?:/);
str && str.shift();
var arr = [];
for (var key in str) {
if (key & 1) {
var key2 = parseInt(key) - 1;
arr[str[key2].trim()] = str[key].trim()
}
}
console.log(arr);
|
sergeev26,
var str = '*text : текст *html_1: <p>текст*</p>: *title: заголовок текст *tag: text1 *tag2: text';
str = str.split(/\*\s?(\w+)\s?:/);
str && str.shift();
str = str.filter(function(a, i, d) {
if(i % 2) return true;
var obj = {};
obj[a] = d[i+1].trim();
d[i+1] = obj
return false
})
alert(JSON.stringify(str));
|
var str = '*text : текст *html_1: <p>текст*</p>: *title: заголовок текст *tag: text1 *tag2: text';
var result = {};
str.replace(/\*(\w+)\s*:\s*.+?(?=$|(?:\s*\*\w+\s*:))/g, function(m, key, value) {
result[key] = value;
});
alert(JSON.stringify(result));
|
Ruslan_xDD,
что-то не так с value |
sergeev26,
Цитата:
|
sergeev26,
:-?
var str = '*text : текст *html_1: <p>текст*</p>: *title: заголовок текст *tag: text1 *tag2: text';
str = str.split(/\*\s?(\w+)\s?:/);
str && str.shift();
str = str.reduce(function(a, b, i, d) {
(++i % 2) && (a[b] = d[i].trim())
return a
},{})
alert(JSON.stringify(str));
|
| Часовой пояс GMT +3, время: 09:32. |