在Javascript中从textarea中删除或隐藏html标签

时间:2012-01-03 08:59:41

标签: javascript html json textarea

我使用json检索了一个textarea的主体,但由于之前设置了一些样式,文本似乎带有html标签。

如果没有这些html标签可见,我怎么能在新的textarea上显示这些文本行?我不想完全摆脱它们,因为我仍然希望保留样式以供将来使用。

2 个答案:

答案 0 :(得分:2)

您需要从textarea中转义传入字符串中的html标记。通过像/<(.|\n)*?>/这样的正则表达式,您可以找到打开的html标记,使用/<(\/.|\n)*?>/可以找到结束标记。

以下是我的例子:

HTML

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />

</head>
<body>
  <textarea id="input">
    <p>This is html</p>
  </textarea>
  <textarea id="output">

  </textarea>

的JavaScript

var input = document.getElementById('input'),
    output = document.getElementById('output');
output.value = input.value.replace(/<(.|\n)*?>/, '').replace(/<\/(.|\n)*?>/, '');

住在:JSBin

您可能希望使用此正则表达式检测/>之类的结束标记:/\/(.|\n)*?>/

答案 1 :(得分:0)

textarea{width:100%;min-height:75px}
<textarea id="input">
    <p>This is html</p>
    <p>This is html</p>
    <p>This is html</p>
</textarea>

<button onClick="removeTags()">Remove</button>

<textarea id="output"></textarea>

<script>
function removeTags(){
  var input = document.getElementById('input');
  var output = document.getElementById('output');
  output.value = input.value.replace(/(<([^>]+)>)/ig,"");
}
removeTags();
</script>