Да, вы можете использовать группы захвата и заполнители в строке замены, при условии, что это действительно именно тот формат, который вы показали:
const str = 'This is a <a href="test1.html">test</a>. And <a href="test2.html">another one</a> here.';
const result = str.replace(/<a href="([^"]+)">([^<]+)<\/a>/g, "$2{{link:$1}}");
console.log(result);
Это очень хрупкий файл, поэтому, как известно, вы не используете регулярные выражения для разбора HTML .Например, произойдет сбой с этой входной строкой:
const str = 'This is a <a href="test1.html">test <span>blah</span></a>. And <a href="test2.html">another one</a> here.';
... из-за <span>blah</span>
.
Но если формат такой же простой и последовательный, как кажетсяполучая из quill.js, вы можете применить к нему регулярное выражение.
Тем не менее, если вы делаете это в браузере или у вас есть доступный анализатор DOM, используйте DOM как charlietfl демонстрирует ;