Вы можете преобразовать строку в узлы DOM, используя что-то вроде createContextualFragment
.
Как только вы это сделаете, вы можете использовать либо link.href
, если вы хотите включить домен, либо link.getAttribute("href")
, если вы просто хотите href
значение атрибута ссылки как .
В этом ответе также используется синтаксис для преобразования дочерних элементов диапазона в итерируемый массив , а затем используется forEach для итерации дети ассортимента и записывают свои данные.
Также обратите внимание, что мой ответ только имитирует ваш код. Рекомендуется добавлять кавычки к атрибутам html, таким как href
или src
. Он отлично работает с большинством символов, но может сломаться с другими .
const string = "<link href=foo><img src=bar><link href=baz><img src=qux>"
const tempMarkup = document.createRange().createContextualFragment(string);
[...tempMarkup.children].forEach(child => {
const data = child.getAttribute("href") || child.getAttribute("src") || ""
console.log(data)
})