-3

可能重复:
从文本 JavaScript 中剥离 HTML

有没有办法从Javascript中的字符串中删除html并保留:(冒号)

我已经完成了从 Text JavaScript 中剥离 HTML以及如何在 textarea 输入中剥离 html 标签以及一些类似的问题,但无法找到正确的解决方案。

例如"Something here<div> content</div>"应该给予"Something here content""Something here :)"应该给予"Something here :)"

在其他问题中提供的解决方案有助于去除 HTML 内容,也可以去除笑脸。

编辑:在提到从文本中去除笑脸的解决方案之前,请注意我需要这个来改进我在 www.chesshunt.com 上的聊天引擎解决方案。目前我正在剥离 HTML 标签和笑脸

我当前的代码

function strip(html) {
    var tmp = document.createElement("DIV");
    tmp.innerHTML = html;
    return tmp.textContent || tmp.innerText;
    }
4

6 回答 6

2

假设内容在另一个容器中,只需使用 .text() 函数:

$('#some_container').text();
于 2012-10-17T19:16:59.520 回答
2

您可以使用创建一个元素

var element = document.createNode('<div>'+yourString+'</div>');

然后获取 textContent(适用于除 IE 之外的所有浏览器)或 innerText。

编辑:Arg,标签中最初没有 jQuery ......所以可以使用

var stripped = $('<div>'+yourString+'</div>').text();

演示(保持笑脸)

于 2012-10-17T19:17:01.543 回答
2

我不得不不同意您的说法,即“在其他问题中提供的解决方案有助于剥离 html 内容,但也剥离笑脸。”

这是基于您的链接的示例:http: //jsfiddle.net/be8gz/

于 2012-10-17T19:28:21.573 回答
0

您可以使用正则表达式jsfiddle

    var myStr = "Something here<div> content</div>";    
    var myRegEx = /<\/?[^<>]*\/?>/gim;
     var result = myStr.split(myRegEx).join("");

或者

    result = myStr.replace(/<\/?[^<>]*\/?>/gim, "");

​
于 2012-10-17T19:17:10.627 回答
0

一个简单的正则表达式应该可以完成这项工作

var string = "Something here<div> content</div> :)";
alert(string.replace(/<([^>]+)>.*?<\/\1>/g,''));​
于 2012-10-17T19:19:36.420 回答
0

我不明白你是否要保留笑脸。根据您问题中的示例,我必须假设您要保留笑脸,但要摆脱任何 html 标签。我认为像这样的正则表达式会起作用:

pattern = /<.*?>/g;

请参阅JSFiddle

于 2012-10-17T19:27:30.987 回答