Заменить все <a>на <span>тег в строке: Javascript - PullRequest
1 голос
/ 04 октября 2019

Мне нужно заменить все <a> на <span> тег из строки.

code:

var a = input.replace(/<a>/g, "'<span>");
var b = a.replace(/<\/a>/g, "</span>");
var c = b.replace(/href/g, "title");

, но у меня это не сработало, и я не смог добавить стиль какwell

Ввод: Angular - это платформа для создания мобильных и настольных веб-приложений.
<a href="http://www.google.com">Test Link</a> Достигните максимально возможной скорости на веб-платформе сегодня и развивайте ее, используяWeb Workers и рендеринг на стороне сервера.
<a href="http://www.google.com">Test Link Two</a>

Вывод: Angular - это платформа для создания мобильных и настольных веб-приложений.
<span style="color:#0000EE" title="http://www.google.com">Test Link</span> Достижение максимальной скоростивозможно на веб-платформе сегодня, и дальше, через веб-работников и рендеринг на стороне сервера.
<span style="color:#0000EE" title="http://www.google.com">Test Link Two</span>.

может кто-нибудь помочь мне исправить это.

1 Ответ

2 голосов
/ 04 октября 2019

Как уже упоминалось в моем комментарии выше, регулярные выражения не являются подходящим инструментом для решения (то есть анализа, изменения ...) HTML. Вот пример, демонстрирующий подход, использующий DOMParser() для фактической замены тегов ссылок на вновь созданный диапазон.

var inputString = `Angular is a platform for building mobile and desktop web applications.
<a href="http://www.google.com">Test Link</a> Achieve the maximum speed possible on the Web Platform today, and take it further, via Web Workers and server-side rendering.
<a href="http://www.google.com">Test Link Two</a>`;

var domParser = new DOMParser();
var doc = domParser.parseFromString(inputString, 'text/html');
var links = doc.querySelectorAll('a:link');
links.forEach(function(linkTag) {
  var spanTag = document.createElement('span');
  spanTag.title = linkTag.href;
  spanTag.style.color = '#0000EE';
  spanTag.innerHTML = linkTag.innerHTML;
  linkTag.parentNode.replaceChild(spanTag, linkTag);
});
console.log(doc.body.innerHTML);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...