Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在textarea输入中剥离html标记_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何在textarea输入中剥离html标记

Javascript 如何在textarea输入中剥离html标记,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我已经建立了一个小的web应用程序,您可以在其中向页面添加帖子。这只是一个帮助更好地学习JavaScript/jQuery的项目,它看起来是一个合适的项目(我是JS/jQuery新手) 这是小提琴: 我发现这个网站: 我将代码实现为: 函数stripHTML(){ var re=/(]+>)/gi; 对于(i=0;i)/ig; 返回文本。替换(regex,“”); } //用法:var str=stripHTML('test'); 演示: var textAreaValue=“text更多文本

我已经建立了一个小的web应用程序,您可以在其中向页面添加帖子。这只是一个帮助更好地学习JavaScript/jQuery的项目,它看起来是一个合适的项目(我是JS/jQuery新手)

这是小提琴:

我发现这个网站:

我将代码实现为:

函数stripHTML(){
var re=/(]+>)/gi;
对于(i=0;i
但它仍然不起作用

问题是:我需要它,这样当有人在文本区域输入文本时,如果他们输入这样的内容“
Hi
”,就会从输入中去掉“
”标记,只留下文本


如果有人能帮我解决这个问题,那就太好了。。谢谢

您可以使用jquery.text函数,但它宁愿转义html也不愿将其剥离:

$(".myTxtBox").text("<b>this text will be displayed, even the b tag.");
$(“.myTxtBox”).text(“将显示此文本,甚至是b标记”);
函数条带HTML(文本){
var regex=/(]+>)/ig;
返回文本。替换(regex,“”);
}
//用法:var str=stripHTML('test');
演示:
var textAreaValue=“text
更多文本”; var strippedText=$(“”).html(textAreaValue.text();​

这里有一个问题。

您有三个问题:一个是方法没有正确返回(这是编写它的人的错)。接下来是在
$(document.ready()
中定义方法,因此无法找到它(至少在Chrome中)。第三,您没有正确地调用它(
onSubmit
在这里永远不会被使用)

我使用了@Joao的方法(所以你应该对他的答案进行投票)并使用了这个方法,它超出了
ready()
函数:

function stripHTML(str){
  var strippedText = $("<div/>").html(str).text();
  return strippedText;
}​
这是工作小提琴:

$(“textarea.text\u input”)。在('keyup',function()上{
this.value=this.value.replace(//g',);
});

没有人根据OP的要求成功回答这个问题,因为内部标签将从输入中完全移除,而不仅仅是标签本身;因此,这里有一个答案正好可以做到这一点():

var input=“这不是一个成功的测试”;
变量输出=$(“”).html(输入).children().remove().end().text()

从您的问题中,我了解到您还想删除标记的内容?@DanBarzilay它会从输入中删除“”标记,只留下文本。@DanBarzilay这正是我的意思,如果您能帮我一个忙并在JSFIDLE中实现,如果我添加失败,我将不胜感激。我将如何在我的网站应用程序中实现这一点?这不会删除网站的内容tag@DanBarzilay:的确,OP要求这样做:它将从输入中去掉“”标记,只留下文本。这是在:“Problam:。。。在评论之前阅读所有内容,并查看我确切地问过他的评论that@DanBarzilay:我不认为这是OP想要的,从文本区域删除实际内容没有多大意义。他实际上接受了一个使用这种策略的答案。这不会删除tag@eric当我添加您的更改时,您的小提琴实际上出现了一个错误。。以下是附加组件的完整代码:由于某些原因,
标记前面有一个坏字符(
,当以ASCII显示时),在
标记前面有一个,可能还有其他一些字符。一旦我删除了这些,我就可以毫无问题地运行您粘贴的整个脚本。(链接:)是的,找到了问题。你就是那个人!非常感谢@Eric虽然这似乎是在JavaScript中剥离HTML标记(即使用浏览器引擎)最流行的答案,但请记住,在IE8
innerText
$中,text()
将不尊重换行符
\r\n
,因此它可能会严重干扰textarea的内容。
function stripHTML(text){
   var regex = /(<([^>]+)>)/ig;
   return text.replace(regex, "");
}
// USE: var str = stripHTML('<b>test</b>');
var textAreaValue = "text <br /> more text";
var strippedText = $("<div/>").html(textAreaValue).text();​
function stripHTML(str){
  var strippedText = $("<div/>").html(str).text();
  return strippedText;
}​
var post = stripHTML($(".text_input").val())
$("textarea.text_input").on('keyup', function() {
    this.value = this.value.replace(/<(.|\n)*?>/g, '');
});
var input = "This is <b>not</b>a successful test";
var output = $("<div/>").html(input).children().remove().end().text()