2011-03-12 16 views
1

В основном мне нужно уметь искать теги «<» и «>» в ​​блоке < > и устанавливать их как ТЕКСТ, а не HTML, чтобы я мог отображать все теги и HTML на странице.javascript escape HTML внутри тега кода

На данный момент все теги наступающем через как фактическое HTML на странице, когда я строка заменить с помощью JQuery:

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

Я не могу изменить HTML() к тексту(), так как любой HTML, вне блок в порядке. Я в основном ищу что-то очень похожее на то, как эта идея textbox/code tag работает в stackoverflow.

Есть ли простой способ сделать это с помощью JavaScript/jQuery?

Благодаря

+1

Я немного запутался. Вы заменяете все вхождения '<' and '>' в 'text' с соответствующим объектом HTML. Таким образом, вы каким-то образом делаете * каждый * тег в литературе 'text'. Почему бы вам не использовать '$ (" # output "). Text (text)' then? HTML-тег, оставшийся в тексте, не отображается. Я хочу сказать, что причина, по которой вы даете не использование 'text()', не имеет смысла. Или я чего-то не хватает? –

+0

Не предлагал бы использовать регулярные выражения для синтаксического анализа HTML - см. Это (известное!) Сообщение http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags JS довольно хорошо разбирается в HTML;) – dianovich

ответ

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 DIV как HTML.

Надеюсь, это поможет.

-1

Я думаю, вам лучше использовать PHP регулярное выражение для извлечения кода между кодовыми метками и отображать их в предварительно теги раздеть форматы:

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

Этот вопрос не связан с PHP. –

Смежные вопросы