2011-03-12 28 views
1

< "<"と ">"をブロック内で検索し、それらをHTMLではなくTEXTとして設定する必要があります。ページ上のHTML。私は、文字列はjQueryのを使用して置き換える行うときにすべてのタグをページ上で、実際のHTMLを通じて来ている瞬間javascriptエスケープHTML内のコード

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()'を使わないために与えた理由が意味をなさないということです。または私は何かを逃している? –

+0

HTMLを解析するために正規表現を使用することは推奨されません - これをご覧ください(有名!)post 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); 

ような何かについて明らかにあなたは、HTMLとしてあなた outputのdivにコードブロックの前と後のすべてのものを配置する必要があります。

これが役に立ちます。

-1

私はあなたがより良いコードタグの間にコードを抽出し、フォーマットを取り除くために、事前のタグでそれらを表示するには、PHPの正規表現を使用すると思う:

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

この質問はPHPに関連していません。 –