9

我已经设置了一个小 Web 应用程序,您可以在其中将便利贴添加到页面中。这只是一个帮助更好地学习 JavaScript/jQuery 的项目,它似乎是一个合适的项目(我是 JS/jQuery 的新手)。

这是小提琴:http: //jsfiddle.net/mitchbregs/mWaPz/

我找到了这个网站:http ://www.hscripts.com/scripts/JavaScript/remove-html-tag.php

我这样实现了代码:

function stripHTML(){
var re = /(<([^>]+)>)/gi;
for (i=0; i < arguments.length; i++)
arguments[i].value=arguments[i].value.replace(re, "")
}

它仍然没有工作。

问题:我需要它,以便当有人在文本区域中输入文本时,如果他们输入类似“ <b>Hi</b>”的内容,它将<b>从输入中删除“”标签并只留下文本。

如果有人可以帮助我,那就太好了..谢谢!

4

6 回答 6

14
var textAreaValue = "text <br /> more text";
var strippedText = $("<div/>").html(textAreaValue).text();​

这是一个Fiddle

于 2012-08-18T22:24:57.463 回答
12

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

我使用了@Joao 的方法(所以你应该支持他的答案)并使用了这个方法,移到了ready()函数之外:

function stripHTML(str){
  var strippedText = $("<div/>").html(str).text();
  return strippedText;
}​

并在这里调用它:

var post = stripHTML($(".text_input").val())

这是工作小提琴:http: //jsfiddle.net/ee3MH/

于 2012-08-18T22:30:06.183 回答
5
function stripHTML(text){
   var regex = /(<([^>]+)>)/ig;
   return text.replace(regex, "");
}
// USE: var str = stripHTML('<b>test</b>');

演示:http: //jsfiddle.net/pisabev/eJzfw/3/

于 2012-08-18T22:22:51.940 回答
0

您可以使用 jquery .text 函数,尽管它宁愿转义 html 而不是剥离它:

$(".myTxtBox").text("<b>this text will be displayed, even the b tag.");
于 2012-08-18T22:20:22.850 回答
0

没有人按照 OP 的要求成功回答了这个问题,因为内部标签将从输入中完全删除,而不仅仅是标签本身;所以,这是一个可以做到这一点的答案(小提琴):

var input = "This is <b>not</b>a successful test";
var output = $("<div/>").html(input).children().remove().end().text()
于 2014-07-08T20:46:48.300 回答
-1
$("textarea.text_input").on('keyup', function() {
    this.value = this.value.replace(/<(.|\n)*?>/g, '');
});

小提琴

于 2012-08-18T22:33:13.287 回答