我有一个填写div的字段,类似于在stackoverflow上询问问题的方式。
var text = $("#edit").val();
$("#output").text(text);
我希望能够使用选定的几个html标签,例如< b>例如,大胆。当我试着这个时,标签出现为文本而不是html。如果可能的话,我希望能够搜索特定的标签并将它们变成html。
有人可以帮忙吗?
感谢
答案 0 :(得分:6)
使用.html()功能代替.text()功能,转义除<b>
标签以外的所有内容。
修改强>:
该方法可能会根据您要保留的标签数量和编码数量而有所不同
这将保留<b>
标记:
var text = 'This is <i>encoded text</i> but this is <b>bold</b >!';
var html = $('<div/>')
.text(text)
.html()
.replace(new RegExp('<(/)?b\\s*>', 'gi'), '<$1b>');
答案 1 :(得分:1)
答案 2 :(得分:1)
这应该这样做:
$('#output').html($('<div/>').text(text).html().replace(/<(\/?b)>/g, '<$1>'));
显然,如果你想要的不仅仅是标签,你的正则表达式可能会变得非常复杂,但基本上你要么选择性地编码,要么编码所有内容然后选择性地解码。后者似乎更安全。