2009-11-28 3 views
1

Я делаю сайт, где код будет отображаться как обычный текст в теге PRE (без подсветки, комментариев, без тегов редактирования), и я хочу, чтобы они могли нажать кнопку и иметь выделен, прокомментирован и отредактирован код тега (также в теге pre).PRE tag to Plain Text

Очевидно, что я должен хранить подсвеченную 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> 

Edit: и ничего, что бы в заранее тег, который не является -html не будет иметь теги <. Там будет> и < 's, но не включенный тег <>. Язык сценариев не использует его. Таким образом, на самом деле все, что мне нужно, - это что-то, чтобы извлечь любые закрытые теги <.

+0

Обязательно: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained -tags/1732454 # 1732454 еще до того, как кто-то упоминает регулярное выражение (всегда есть одно). –

+0

Просто отметить, что я нашел эту функцию PHP, которая делает HTML для обычного текста, но не переделывает пробелы, вкладки, \ n в тегах PRE. http://www.chuggnutt.com/html2text.php – Brian

ответ

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