Мне нужно преобразовать это ...JS: Преобразование текста в объекте массив
# 4.0.0 - 2016-01-01
- some text without category
# 3.12.0 - 2016-02-01
- Category: some text
# 3.11.4 - 2016-03-01
- Category: some multiple text
- Something: some text
- Anything: more text
... в (объекте) массив. Я не знаю, как сохранить все элементы, связанные с его версией.
Результат должен быть выглядеть следующим образом (например, для последнего блока)
[
{
major: 3,
minor: 11,
patch = 4,
date = '2016-03-01',
entries = [
{ category: 'Category', 'some multiple text' },
{ category: 'Something', 'some text' },
{ category: 'Anything', 'more text' }
]
}
]
Как вы можете видеть в первом блоке, в entries
поле category
является необязательным.
Это, как я пытаюсь сделать это:
var lines = text.split('\n');
for(var i = 0;i < lines.length;i++){
var meta = lines[i].split(' ');
var version = meta[1].split('.');
result['major'] = version[0];
result['minor'] = version[1];
result['patch'] = version[2];
result['date'] = meta[3]
}
Но это работает только для первой строки каждого блока.
ли это быть в 'JavaScript'? Другие двигатели (например, 'PCRE' на PHP) обеспечивают лучшую функциональность, например' \ G'. – Jan
Да, это должен быть JS. – user3142695