使用jQuery从字符串中删除HTML标记

5

我希望能够从字符串中删除HTML标签,例如删除div、p、br等标签...

我正在尝试实现以下操作:

var mystring = "<div><p>this</p><p>is</p><p>my</p><p>text</p><p>sample</p><p> </p><p> </p></div>"

var html3 = $(mystring).text();

但是结果是:
"thisismytextsample  "

如何像这样做:“这是我的文本示例”

3
他希望单词之间有空格。 - Yabada
https://dev59.com/k3RA5IYBdhLWcg3wzhNY - raklos
3
http://jsfiddle.net/asdasdasdas/shE58/22/ - Umesh Sehta
http://jsfiddle.net/qn3gv2u8/ - Ram
@EoiFirst 正确!抱歉,没有仔细阅读 :-( - Rob Schmuecker
可以尝试使用trim方法,并编写简单的正则表达式将空格替换为一个空格。 - Aliaksei Bulhak
3个回答

4
你可以将所有p标签的文本内容存储在一个数组中,然后使用空格将它们连接起来:
$(mystring).find('p').map(function() {
   return $(this).text();
}).toArray().join(' '));

Working Demo


感谢您的回答。这个解决方案在a<b><div>c</div><div>d</div>上不起作用。 - habiat

1

这会导致与"thisismytextsample "相同的结果。 - Xaver

1
尝试使用正则表达式进行此操作。
var mystring="<div><p>this</p><p>is</p><p>my</p><p>text</p><p>sample</p><p> </p><p> </p></div>"


function RemoveHTMLTags(string1) {
            var regX = /(<([^>]+)>)/ig;
            var html = string1;
            return html.replace(regX, " ");
        }


var res = RemoveHTMLTags(mystring);

alert(res);

演示


感谢您的回答。这个解决方案在a<b><div>c</div><div>d</div>上不起作用。 - habiat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接