JavaScript получить href = содержимое из строки - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу получить все строки после href =. В частности, для объектов ссылок, я также хочу атрибут src = для объектов сценариев.

Я знаю, что это можно сделать с помощью регулярных выражений, но я не очень хорош в этом, поэтому я здесь, чтобы спросить за вашу помощь.

var string = "<link href=somewherewithoutbraces >"
var regex = /someregex/g
// Now how do I get every occurance of this href? I want to get all of them.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете преобразовать строку в узлы 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)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...