2011-03-12 50 views
1

基本上我需要能夠在<代碼塊中搜索標籤「<」和「>」,並將它們設置爲TEXT而不是HTML,以便我可以顯示所有標籤和頁面上的HTML。javascript代碼中的HTML轉義

目前所有標籤都是通過作爲實際的HTML頁面上的未來,當我做一個字符串替換使用jQuery:

var text = $("#edit").val(); 
filter = text.replace(/</gi,"&lt;").replace(/>/gi,"&gt;"); 
$("#output").html(filter); 

我不能改變HTML()來發送短信(),因爲任何HTML,外塊很好。我基本上在尋找一些非常相似的東西,就像這個文本框/代碼標籤的想法如何在stackoverflow上工作。

有沒有簡單的方法來使用JavaScript/jQuery來做到這一點?

感謝

+1

我有點困惑。您將'text'中所有出現的'<' and '>'替換爲相應的HTML實體。所以你以某種方式在'text'文字中創建*每個*標籤。爲什麼你不用'$(「#output」).text(text)'然後呢?在'text'中沒有HTML標籤被渲染。我想說的是,你給不使用'text()'的原因沒有任何意義。或者我錯過了什麼? – 2011-03-12 19:07:26

+0

不會建議使用正則表達式來解析HTML - 看到這個(着名!)發佈http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags JS非常擅長解析HTML;) – dianovich 2011-03-12 19:19:37

回答

1

我建議解析HTML和使用文本()方法來顯示你的code塊。如何像

var text = $($('#edit').val()); //create HTML object and parse as you would DOM 
var code = text.find('code').html(); 
$('#output').text(code); 

顯然,你將收到與代碼塊到您output格爲HTML後一切就緒。

希望這會有所幫助。

-1

我想你更好的使用PHP正則表達式的代碼標記之間提取代碼和預標記顯示它們剝離出來的格式:

<?php 
$var="blahblah<code>...</code>booboo"; 
$var=ereg_replace("<code>(.*?)</code>", "", $var); 
print "<pre>$var</pre>"; 
?> 
+1

這個問題不是PHP相關的。 – 2011-03-12 20:56:18