使用javascript替换img标记

时间:2016-04-28 17:08:12

标签: javascript regex

我正在尝试使用Regex,但仅在PHP和多年前使用过它:

var msgText = thisMSG.getElementsByClassName('message-text')[0].getElementsByClassName('emojitext')[0].innerHTML;
msgText = msgText.replace('/<img src="([\.]*)"([\.]*)alt="[([\.]*)">/g','\\3');

我想用替代内容替换img标记:

<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="emoji emojiordered0186 selectable-text" draggable="false" alt="❤">

任何想法有什么不对?

编辑:图像可以是发送的一部分,例如:

I <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="emoji emojiordered0186 selectable-text" draggable="false" alt="❤"> U!

2 个答案:

答案 0 :(得分:1)

您不必使用正则表达式。请改用下面的代码。

var msgText = thisMSG.querySelector(".message-text .emojitext");
msgText.parentNode.replaceChild(document.createTextNode(msgText.alt), msgText);

进行多项更改:

[].forEach.call(document.querySelectorAll(".message-text .emojitext"), function(emoji) {
   emoji.parentNode.replaceChild(document.createTextNode(emoji.alt), emoji);
});

答案 1 :(得分:0)

好的,明白了:

var msgText = null;
while ( msgText = thisMSG.querySelector('.message-text .emojitext .emoji') )
{
  msgText.outerHTML = msgText.alt;
}

并使用文字:

thisMSG.querySelector('.message-text .emojitext').innerHTML