2012-03-07 44 views
4

我有一個包含多組括號的字符串,每組括號包含多個<br>標籤。舉例來說,一個片斷可能是:Javascript:替換出現在多組括號內的所有<br>實例

<p>some text<br>[text<br> text text<br>text]<br>some more text<br>[text]</p> 

我需要在括號內取出<br>標籤,而不是括號外的<br>標籤。我試着用.replace和.indexOf()循環來做這件事,但它刪除了括號外的<br>標籤。有任何想法嗎?謝謝!

+1

使用正則表達式的目標,你需要更換 – 2012-03-07 18:17:52

回答

5

您可以使用正則表達式和替換,而它在括號中的<br>匹配:

var regexp = /\[(.*)<br>(.*)\]/; // [anything<br>anything] 

while(regexp.test(str)) { 
    str = str.replace(regexp, "[$1$2]"); // replace with [anythinganything] 
} 
+0

重要的是要注意的是,循環被要求作爲JavaScript的項目string.replace只替換第一次出現的比賽 – jbabey 2012-03-07 18:22:23

+0

完美的作品!感謝您的快速響應。 – nullnullnull 2012-03-07 18:55:22