2016-04-28 58 views
-1

我試圖用正則表達式與ALT替換img標籤,但用它只能在PHP和年前:使用JavaScript

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

我想更換與ALT含量img標籤:

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

任何想法有什麼不對?

編輯:圖像可以是sentnce的一部分,如:

I <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="emoji emojiordered0186 selectable-text" draggable="false" alt="❤"> U! 
+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); 
}); 
+0

但是,如果圖像只是其他文本的一部分?如:我❤ü! –

+0

「圖像只是其他文字的一部分」是什麼意思? –

+0

圖像不是整個字符串,可以更多的文字前後 –

0

好,我知道:

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

和使用的文字:

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

這實際上是什麼JakubRożek建議。接受他的回答作爲接受並將其添加爲評論或編輯是公平的。考慮到你所要求的有點含混不清。 – Lex

+0

你是對的..仍然試圖讓這個網站的工作。無論如何,我不會刪除我的評論,也許它會幫助別人。 –