регулярное выражение для извлечения тега ссылки из HTML-строки на стороне сервера - PullRequest
0 голосов
/ 07 марта 2019

У меня есть источник HTML-страницы в формате строки на стороне сервера.

Мне нужно извлечь строку и добавить ее в массив. Может быть несколько ссылок с одним и тем же начальным тегом.,мне нужно поместить извлеченную строку в массив

<link rel="icons"................ > может содержать что-либо внутри тега. Я упомянул startTag и endTag в приведенном ниже коде.

  var startTag = '<link rel="icons"';
  var endTag = '>';
  const re = new RegExp('(' + startTag + ')(.|\n)+?(' + endTag + ')', 'g');

Однако,Когда я утешаю значение re, это не то, что я ожидаю.

DesiredOutput

['<link rel="icons" href="icons1.png"','<link rel="icons" href="icons2.png"',<link rel="icons" href="icons3.png"]

Заранее спасибо.

1 Ответ

0 голосов
/ 07 марта 2019

Я думаю, вы ищете что-то вроде этого (замена - просто удалить лишние пробелы):

const data = `
  <link 
    rel="icons"
    href="icons1.png"
  >
  <link 
    rel="icons"
    href="icons2.png"
  >
  <link 
    rel="icons"
    href="icons3.png"
  >
`;

const links = data.match(/<link.*?>/gs)
  .map(link => link.replace(/\s+/g, ' '));

console.log(links);

Если вы находитесь в среде, которая не поддерживает флаг s, вы можете использовать /<link[^]*?>/g.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...