Я использовал регулярное выражение "(.*?)", чтобы получить все, что находится между кавычками в строке. После выполнения операций над массивом, предоставленным exec(), теперь у меня есть массив этих фрагментов, которые нужно вернуть в строку. Как я могу сопоставить этот массив обратно со строкой, используя регулярное выражение?
Я знаю о замене их всех одним конкретным значением, но я не уверен, как это сделать с массивом. Возможно, есть какая-то map() функция, которую я могу использовать для pop() значений из массива?
Я новичок в Deno и JS в целом (исходя из более низкого уровня), так что извините, если я просто пропустил документ или что-то в этом роде.
Когда вы выполняете замену регулярного выражения, замена может быть функцией, а не строкой. Функция может возвращать динамически определяемые результаты, поэтому она может выполнять поиск в массиве.
@MarcosCasagrande, в моем случае я пытаюсь проанализировать HTML и сопоставить все домены, включенные в другой домен. Вероятно, я мог бы обойти всю эту проблему с помощью другого шаблона проектирования. по сути, может быть что-то вроде этого: <a href = "https://example.com/foo">foo</a> и я хочу превратить это в это: <a href = "https://example.org/?url=https://example.com/foo">foo</a>
@Barmar хорошо, наверное, должно сработать. какую функцию замены вы конкретно имеете в виду? (не тот, который нужно ввести, я имею в виду метод регулярного выражения)
result = str.replace(/regex/, (match, group1) => ...)Вам не нужно использовать exec() для этого. Просто используйте str.replace(/regexp/g, 'replacement string that uses $1 and $2'), чтобы подставить группы захвата в результат.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Использование .replace с функцией замены — это самый простой способ добиться того, чего вы хотите.
const html = `
<a href = "https://example.com/foo">foo</a>
<div></div>
<a href = "https://example.net/foo">foo</a>
`;
const result = html.replace(/"(.*?)"/g, (match, group) => {
return `"https://example.org/?url=${group}"`;
});
console.info(result);Вы также можете использовать строку замены с шаблоном замены $n
const html = `
<a href = "https://example.com/foo">foo</a>
<div></div>
<a href = "https://example.net/bar">bar</a>
`;
const result = html.replace(/"(.*?)"/g, `"https://example.org/?url=$1"`);
console.info(result);
Можете ли вы добавить пример ожидаемого ввода/вывода?