при такой выборке, почему пропадают последние теги
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, время: 04:06. |