У меня есть поле с рендерингом в вики-стиле, которое я хотел бы добавить в Javascript.
Текст, который я пытаюсь разобрать, выглядит так:
{color:#47B}_name1_{color}
{color:#555}description1{color}
---
{color:#47B}_name2_{color}
{color:#555}description2{color}
---
{color:#47B}_name3_{color}
{color:#555}description3{color}
---
etc
Если name1 и description1 принадлежат друг другу, name2 и description2 принадлежат друг другу и т. Д. Значения для имени и описания являются пользовательскими значениями, описание которых может занимать несколько строк.
Моя конечная цель - уметь извлекать значения каждого имени и каждого описания из текста (и иметь возможность надежно связывать имя1 с описанием1 и т. Д.).
Мой вопрос: если я использовал регулярное выражение для сопоставления всех имен в массиве и всех описаний в массиве, могу ли я быть уверен, что элементы в массиве находятся в правильном порядке? То есть имена [0] всегда будут первым именем в разобранном тексте (при условии, что я сделал регулярное выражение javascript match
в массив имен)? Также - это плохая практика / я должен сделать это по-другому?
Регулярное выражение, которое я пытаюсь использовать для сопоставления имен:
/^(\{color\:#47B\})(_)(\s*?)(.*?)(\s*?)(_)(\{color\})$/
И регулярное выражение, которое я использую для сопоставления описаний:
/(\{color\:#555\})(.*?)(\{color\})/