2012-06-19 35 views
4

我有一個字符串,可能有效,也可能不是有效的HTML,但它應該包含Title標記。
我想用新的內容替換標題的內容。如何在javascript中替換特定的標記內容

實施例1:

lorem yada yada <title>Foo</title> ipsum yada yada 

應該變成:

lorem yada yada <title>Bar</title> ipsum yada yada 

實施例2:

lorem yada yada <title attributeName="value">Foo</title> ipsum yada yada 

應該變成:

lorem yada yada <title attributeName="value">Bar</title> ipsum yada yada 

我不想解析HTML與正則表達式 - 只需更換標題標籤...請不要給我here ...

編輯: 經過無數次向下票,很多光顧的態度 -
我知道(正如原來的帖子所承認的)通常Regex不是處理HTML的方式。我願意解決任何解決我的問題的解決方案,但到目前爲止,每個JQuery/DOM解決方案都無法正常工作。 「正確」是不夠的。

+1

這在jQuery中做的很微不足道。這是一個選擇嗎? – HackedByChinese

+0

@HackedByChinese - 不正如我在問題中提到的,我有一個字符串,可能不是html。 – seldary

+0

'document.getElementsByTagName(「head」)[0] .getElementsByTagName(「title」)[0] .innerHTML =「Bar」;' – Mageek

回答

2

這是很難做這樣的事情可靠地與正則表達式(讀:「不會爲工作所有情況「),因此如果可能的話,使用某種適當的解析器是最好的。

這就是說,這裏是一個簡單的表達,將你的工作的例子:

var re = /(<title\b[^>]*>)[^<>]*(<\/title>)/i; 
str = str.replace(re, "$1Bar$2"); 

有些事情,這不處理,不會與正確的工作:評論,報價,CDATA等

4
function replaceTitle(str, replacement) { 
    var tmp = document.createElement("ihatechrome"); 
    tmp.innerHTML = str; 
    tmp.getElementsByTagName("title")[0].innerHTML = replacement; 
    return tmp.innerHTML; 
} 

replaceTitle("lorem yada yada <title>Foo</title> ipsum yada yada", "Bar"); 
//"lorem yada yada <title>Bar</title> ipsum yada yada" 

出於某種原因,谷歌瀏覽器發出請求,如果有img標籤與src。沒有任何意義,但這就是發生了什麼。

編輯:

這似乎在Chrome中工作(不加載圖像):

var doc = document.implementation.createHTMLDocument(""); 

doc.body.innerHTML = "<img src='/'>"; 

doc.body.innerHTML; //"<img src="/">" 
+0

這會不會執行任何''

  • 11. 如何在javascript中替換不在href標記中的URL
  • 12. jquery/javascript內容替換?如何
  • 13. Javascript:我如何替換字符串的內容,但不是HTML標記中的內容?
  • 14. 在WKWebView中替換DIV標記的多行文本內容?
  • 15. 只在特定行中替換文件中的內容
  • 16. 在wordpress中替換特定帖子中的內容true mySQL
  • 17. 正則表達式替換特定標記內特定字符後的所有內容
  • 18. 替換特定標記內的屬性名稱
  • 19. BeautifulSoup:如何用span標記替換內容
  • 20. 如何搜索並替換特定標記後的空行?
  • 21. 如何在使用file_get_contents時從特定標記獲取內容
  • 22. 在JavaScript中,如何用XML替換窗口的全部內容?
  • 23. 用XSLT替換Javascript內容
  • 24. 如何查找XML中特定標記內的所有標記
  • 25. javascript替換div中的內容
  • 26. 如何找出在Perl替換中被替換的內容?
  • 27. 使用Javascript在特定標記內選擇標記
  • 28. 如何替換自定義標籤,類或ID的內容?
  • 29. 替換HTML標籤內容
  • 30. 如何在li標籤中選擇特定的標籤內容?