我已经设置了一个小的Web应用程序,您可以在其中添加post-it到页面。这只是一个帮助更好地学习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, "") }
它仍然没有用。
问题:我需要它,以便当有人将文本输入到textarea时,如果他们输入类似“<b>Hi</b>
”的内容,它会从输入中删除“<b>
”标记并离开文本。
如果有人可以帮助我,那就太棒了..谢谢!
答案 0 :(得分:12)
var textAreaValue = "text <br /> more text";
var strippedText = $("<div/>").html(textAreaValue).text();
这是一个Fiddle。
答案 1 :(得分:10)
你有三个问题:一个是方法没有正确返回(这是谁编写它的错误)。接下来是您在$(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/
答案 2 :(得分:5)
function stripHTML(text){
var regex = /(<([^>]+)>)/ig;
return text.replace(regex, "");
}
// USE: var str = stripHTML('<b>test</b>');
答案 3 :(得分:0)
你可以使用jquery .text函数,虽然它会转义html而不是剥离它:
$(".myTxtBox").text("<b>this text will be displayed, even the b tag.");
答案 4 :(得分:0)
$("textarea.text_input").on('keyup', function() {
this.value = this.value.replace(/<(.|\n)*?>/g, '');
});
答案 5 :(得分:0)
根据OP的要求,没有人成功回答这个问题,因为内部标签将完全从输入中移除,而不仅仅是标签本身;所以,这里的答案正是如此(Fiddle):
var input = "This is <b>not</b>a successful test";
var output = $("<div/>").html(input).children().remove().end().text()