有没有办法从Javascript中的字符串中删除html并保留:(冒号)
我已经完成了Strip HTML from Text JavaScript和how 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;
}
答案 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();
答案 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。