javascript在代码标记内转义HTML

时间:2011-03-12 19:03:14

标签: jquery html string escaping

基本上我需要能够搜索标签“<”和“>”在< code>内阻止并将它们设置为TEXT而不是HTML,以便我可以在页面上显示所有标签和HTML。

目前,当我使用jQuery替换字符串时,所有标记都以页面上的实际HTML形式出现:

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

我无法将html()更改为text(),因为任何HTML,OUTSIDE块都可以。我基本上寻找的东西非常类似于这个文本框/代码标记的想法如何在stackoverflow上工作。

使用JavaScript / jQuery有一种简单的方法吗?

由于

2 个答案:

答案 0 :(得分:1)

我建议解析HTML并使用text()方法显示您的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 :(得分:-1)

我认为您最好使用PHP正则表达式在代码标记之间提取代码并在预标记中显示它们以去除格式:

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