我正在尝试从textarea-tag(TEMPORARILY)中删除所有HTML标记,但之后在页面上显示textarea值。
<textarea><span style="color: blue">Test</p></textarea><br />
Show textarea here: <span id="show"></span>
我的jQuery
$("#show").html($("textarea").val());
这就是我现在展示textarea内容的方式,这就是它最终的表现。同时我想隐藏textarea中的HTML代码,因此textarea内部的内容对普通PC用户来说看起来并不丑陋。因此,Textarea应仅包含“测试”(无引号)。
所以基本上我想要转义所有HTML标签,元素以及与textarea-tag中的HTML INSIDE相关的所有内容,但稍后会使用它。
答案 0 :(得分:2)
您可以使用正则表达式去除标记barring that you aren't trying to parse it。
$("#show").html($("textarea").val());
var text = $('textarea').val();
$('textarea').val(text.replace(/(<([^>]+)>)/ig,""));
答案 1 :(得分:0)
这就是你想要做的。将textarea的值放在show span中。然后用正则表达式从textarea中删除html标签。
$inner = $("textarea").val();
$("#show").text($inner);
$('textarea').val(text.replace(/(<([^>]+)>)/ig,""));
如此JSFiddle
所示答案 2 :(得分:0)
您可以使用contenteditable div而不是textarea来获得所需的结果。
<div contenteditable='true'><span style="color: blue">Test</span></div><br />
然后你得到html而不是val()
$("#show").html($("div").html());
如果您希望它看起来像文本区域,可以在div周围放置一个边框。
答案 3 :(得分:0)
你可以通过用正则表达式替换html标签来实现:
HTML:
<textarea id="textArea"><span style="color: blue">Test</span></textarea><br />
Show textarea here: <span id="show"></span>
JS:
var textWOHTML = $("textarea").val().replace(/<(.|\n)*?>/, '').replace(/<\/(.|\n)*?>/, '');
var textWithHTML = $("textarea").val();
$('#textArea').val(textWOHTML);
$("#show").html(textWithHTML);
答案 4 :(得分:-2)
由于我明显误解了他的确切需要,我已经删除了我的建议!