2009-11-28 67 views
1

我正在製作一個網站,代碼將在PRE標記中顯示爲純文本(無突出顯示,註釋,無編輯標記),我希望它們能夠單擊按鈕並讓突出顯示,評論和編輯標籤代碼以顯示(也在預標籤中)。PRE標記爲純文本

很顯然,我有一些地方保存高亮顯示的HTML代碼,但我一直在尋找像html2text一個函數,將採取編輯PRE標籤的每一個精髓,並將其與普通PRE標籤

對於轉換爲純文本例如像這樣

<pre> 
<b>ON SELECT</b> 
{ 
    "<edit title="This will be the filename.">beep.wav</edit>" SOUND 
} 
</pre> 

到這樣的事情

<pre> 
ON SELECT 
{ 
    beep.wav SOUND 
} 
</pre> 

編輯:還有什麼可能會包含在預先標記,非-html不會有<>標籤。將有>和<的標籤,但不包含<>標籤。腳本語言不使用它。這意味着我真正需要的是提取任何封閉的<>標籤。

+0

強制性有些解析器:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained -tags/1732454#1732454甚至在有人提到正則表達式(總是有一個)。 – 2009-11-28 03:11:31

+0

需要注意的是,我發現這個PHP函數可以將HTML轉換爲純文本,但它不會重新構建PRE標籤中的空格,製表符。 http://www.chuggnutt.com/html2text.php – Brian 2009-11-28 03:18:03

回答

2

在Javascript中,你可以做DOM函數+正則表達式

<body> 
<pre> 
<b>ON SELECT</b> 
{ 
    "<edit title="This will be the filename.">beep.wav</edit>" SOUND 
} 
</pre> 

<textarea id="result" rows=10 cols=50></textarea> 

<script> 
    x=document.getElementsByTagName("pre"); 
    for(i in x){ 
     text=x[i].innerHTML.replace(/<.*?>/g,''); 
     text=text.replace(/"/g,''); 
     document.getElementById("result").value+="<pre>"+text+"</pre>"; 
    } 
</script> 
</body> 

那你會給你的預期效果,調整它取決於你的需要。

<pre> 
ON SELECT 
{ 
    beep.wav SOUND 
} 
</pre> 

或在PHP中,你可以使用HTML