如何在 textarea 输入中去除 HTML 标签
如何在 textarea 输入中去除 HTML 标签
我搭建了一个小的网络应用程序,在页面上添加便利贴。这只是一个帮助我更好地学习JavaScript/jQuery的项目,而且它看起来是一个合适的项目(我对JS/jQuery还不熟悉)。\n这是网址:http://jsfiddle.net/mitchbregs/mWaPz/\n我找到了这个网站:http://www.hscripts.com/scripts/JavaScript/remove-html-tag.php\n我按照以下方式实现了代码:\n
\n
function stripHTML(){ var re = /(<([^>]+)>)/gi; for (i=0; i < arguments.length; i++) arguments[i].value=arguments[i].value.replace(re, "") }\n
\n但是它仍然不起作用。\n问题是:当有人在文本区域中输入文本时,如果他们输入类似\"Hi
\"这样的内容,它应该将\"\"标签从输入中去除,只保留文本。\n如果有人能帮我解决这个问题,那就太好了。谢谢!
在上述内容中,提到了一个问题:如何去除文本区输入中的HTML标签。问题的出现原因是当输入的文本中包含有HTML标签时,当前的解决方案不能正确处理。
为了解决这个问题,可以使用以下代码来去除HTML标签:
function stripHTML(text){ var regex = /(<([^>]+)>)/ig; return text.replace(regex, ""); } // 使用示例:var str = stripHTML('<b>test</b>');
你可以在jsfiddle上查看下面的链接以获得演示:http://jsfiddle.net/pisabev/eJzfw/3/。如果你能帮我在jsfiddle上实现一下,我将非常感激。
然而,当我在输入中添加<script></script>时,它失败了。
问题的原因是,用户想要在文本输入框中去除HTML标签,但是他们不想删除标签中的内容。在评论中,有些人认为应该删除标签及其内容,而另一些人认为应该只删除标签。由于问题描述不清晰,导致了混淆和误解。
解决方法是使用jQuery的html()和text()方法。在这段代码中,使用html()方法将文本输入框的值赋给一个div元素,然后使用text()方法获取div元素的文本内容。这样可以去除HTML标签,只保留纯文本。
以下是解决方法的代码:
var textAreaValue = "text <br /> more text";
var strippedText = $("<div/>").html(textAreaValue).text();
如果你在网站应用程序中使用jQuery,你可以在你的代码中实现这个方法。这样,用户在文本输入框中输入的内容将被去除HTML标签,只保留纯文本。
希望这个解决方法能帮助到你。如果你有任何其他问题,请随时提问。
问题的出现原因:方法没有正确返回,方法定义在$(document).ready()内部无法找到,方法的调用方式不正确。
解决方法:将方法移到$(document).ready()函数之外,并正确调用方法。使用stripHTML方法以及调用方法的代码如下:
function stripHTML(str){ var strippedText = $("").html(str).text(); return strippedText; } var post = stripHTML($(".text_input").val());
可以在这个链接上查看实际工作的fiddle:http://jsfiddle.net/ee3MH/
还有一个问题:删除标签的内容时会出错。你的fiddle实际上在我添加了你的更改后出现了错误。这里是包含你所做更改的完整代码:http://pastebin.com/raw.php?i=j0STwjAA
由于某种原因,在你的</script>标签之前有一个坏字符(在ASCII中显示为问号),在你的</style>标签之前也有一个,可能还有其他一些。一旦我删除了这些字符,我就可以正常运行你粘贴的整个脚本了。链接:http://pastebin.com/qASL40dz
这似乎是JavaScript中删除HTML标签最常用的方法(即使用浏览器引擎),但请记住,在IE8中,innerText和$.text()不会保留换行符\r\n,因此可能会严重干扰textarea的内容。
这实际上不是一种可靠的方法。它只会删除一个层级的标签,并且可能会调用任何嵌入的javascript。使用onkeyup和<script>alert(1)</script>进行测试,然后在开头添加<script>。它会在返回之前调用脚本。尤其是在对结束标签进行假设的地方。