JavaScript: Как разбить строку на массив на основе фигурных скобок? - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу разбить строку, подобную этой:

"2*{some_string}*8*{some_other_string}"

В массив, сохраняя фигурные скобки без изменений:

["2*","{some_string}","*8*","{some_other_string}"]

Я бью стену и всегда заканчиваю уберите фигурные скобки. Есть какие-нибудь подсказки?

Я работал с чем-то вроде этого:

var found = [],          // an array to collect the strings that are found
    rxp = /{([^}]+)}/g,
    str = "a {string} with {curly} braces",
    curMatch;

while( curMatch = rxp.exec( str ) ) {
    found.push( curMatch[1] );
}

console.log( found );    // ["string", "curly"]

Спасибо:)

1 Ответ

3 голосов
/ 15 апреля 2020

На самом деле не нужно заменять. Вы можете сохранить {}, когда разбиваете его с помощью регулярных выражений, но это создаст пустую строку, поэтому вам нужно будет использовать фильтр для удаления пустой строки в массиве после разбиения.

console.log("2*{some_string}*8*{some_other_string}".split(/({.*?})/).filter(s => !!s))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...