2016-07-07 94 views
1

我有一個HTML文本,我想用jquery中的文本替換具體類的錨標記。javascript正則表達式來替換特定類的錨標記與文本

例如,

var htmltext="test message <a class="red pagtag" href="#" contenteditable="false">Harshvardhan Rane</a> test <br> <a class="red pagtag" href="#" contenteditable="false">Jay Alvarrez</a>"; 

我想用文字來代替整個錨標記。

需要的輸出:

var htmltext="test message **Harshvardhan Rane** test <br> **Jay Alvarrez**"; 

回答

3

這是不是一個好主意來改變HTML與正則表達式。 相反,因爲你提到的jQuery,使用節點操作工具:

var htmltext='test message <a class="red pagtag" href="#" contenteditable="false">Harshvardhan Rane</a> test <br> <a class="red pagtag" href="#" contenteditable="false">Jay Alvarrez</a>'; 
 
var $html = $("<div/>").html(htmltext); 
 
$html.find("a").each(function() { 
 
    $(this).replaceWith("**"+$(this).text()+"**"); 
 
}); 
 
$("body").append($html)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

2

嘗試使用方法replace下一個正則表達式:

htmltext.replace(/<\/*a.*?>/g,'**') 

這個語句應該返回確切什麼你需要。

var htmltext='test message <a class="red pagtag" href="#" contenteditable="false">Harshvardhan Rane</a> test <br> <a class="red pagtag" href="#" contenteditable="false">Jay Alvarrez</a>'; 
 

 
htmltext=htmltext.replace(/<\/*a.*?>/g,'**'); 
 
console.log(htmltext);

+0

它的確如此。我仍然喜歡使用DOM或在這種情況下使用jQuery來操作標籤 – mplungjan