删除字符串中的所有HTML标签(使用jquery text()函数)
是否可以使用jquery text()函数删除字符串中的所有HTML?
带有HTML标记的字符串:
myContent = '
Hello world!
';
结果必须是:
Hello world!
var myContent = 'Hello world!'; alert($(myContent).text());
这导致了你好世界。 这是否回答你的问题?
我创建了这个测试用例: 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()