从字符串中删除HTML标记并保留“:”(冒号)

时间:2012-10-17 19:14:41

标签: javascript jquery

  

可能重复:
  Strip HTML from Text JavaScript

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

我已经完成了Strip HTML from Text JavaScripthow do you strip html tags in textarea input以及类似的问题,但无法找到正确的解决方案。

例如"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;
    }

6 个答案:

答案 0 :(得分:2)

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

$('#some_container').text();

答案 1 :(得分:2)

您可以使用

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

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

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

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

DEMONSTRATION (keeping the smiley)

答案 2 :(得分:2)

我不同意你的陈述“在其他问题中提供的解决方案有助于剥离html内容,但也剥离了笑脸。”

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

答案 3 :(得分:0)

您可以使用正则表达式jsfiddle

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

OR

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

​

答案 4 :(得分:0)

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

var string = "Something here<div> content</div> :)";
alert(string.replace(/<([^>]+)>.*?<\/\1>/g,''));​

答案 5 :(得分:0)

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

pattern = /<.*?>/g;

请参阅JSFiddle