bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Есть ли возможность в matchAll узнать lastIndex?

Есть ли возможность узнать lastIndex в matchAll чтобы в конце вырезать конец который не сопоставился, в данном примере .
В результате нужны все сопоставленные строки и остаток который не сопоставился.
Написал вот пример, но может есть решение лучше?

const line = '<RECORD>Record 1</RECORD><RECORD>Record 2</RECORD><REC...>';
const records = line.matchAll(/(?:<RECORD>)(?<record>.*?)<\/RECORD>/g);

const result = [];
let lastIndex = 0;
for (const record of records) {
  lastIndex = record.index + record[0].length;
  result.push(record.groups.record);
}

const lineEnd = line.slice(lastIndex);
console.log(result);
console.log(lineEnd);
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы