删除字符串中的所有HTML标签(使用jquery text()函数)

是否可以使用jquery text()函数删除字符串中的所有HTML?

带有HTML标记的字符串:
myContent = '

Hello world!

';

结果必须是:
Hello world!

 var myContent = '
Hello world!
'; alert($(myContent).text());

这导致了你好世界。 这是否回答你的问题?

http://jsfiddle.net/D2tEf/举个例子

我创建了这个测试用例: http : //jsfiddle.net/ccQnK/1/ ,我使用Javascript替换函数和正则表达式来获得你想要的结果。

 $(document).ready(function() { var myContent = '
Hello world!
'; alert(myContent.replace(/(<([^>]+)>)/ig,"")); });

如果您需要删除HTML但不知道它是否实际包含任何HTML标记,则不能直接使用jQuery方法,因为它返回非HTML文本的空包装。

 $('
Hello world
').text(); //returns "Hello world" $('Hello world').text(); //returns empty string ""

您必须将文本包装在有效的HTML中:

 $('
' + 'Hello world' + '
').text();

或者使用方法$ .parseHTML()(自jQuery 1.8开始),它可以处理HTML和非HTML文本:

 var html = $.parseHTML('Hello world'); //parseHTML return HTMLCollection var text = $(html).text(); //use $() to get .text() method 

加上parseHTML完全删除脚本标签,这对于用户输入的防黑客保护非常有用。

 $('

Hello world

').text(); //returns "Hello worldconsole.log(document.cookie)" $($.parseHTML('

Hello world

')).text(); //returns "Hello world"

你能不能尝试一下吗?

 myContent = '
Hello world!
'; console.log($(myContent).text()); //Prints "Hello world!"

请注意,您需要将字符串包装在jQuery对象中,否则它显然不会有text方法。

替代:

  $("

").html(myContent).text();

我在特定情况下发现我只需要修剪内容。 也许不是问题中的答案。 但我认为无论如何我应该添加这个答案。

 $(myContent).text().trim()