Javascript 从来自服务器的字符串中删除HTML标记和实体

Javascript 从来自服务器的字符串中删除HTML标记和实体,javascript,html,regex,string,Javascript,Html,Regex,String,在应用程序中,我收到一些HTML文本:由于应用程序无法显示(解释)HTML,我需要从服务器接收的字符串中删除任何HTML标记和实体 我尝试了以下方法,但这一个删除了HTML标记,但没有删除实体(例如&bnsp;): stringFromServer.replace(/(]+)>)/ig,”; 感谢您的帮助 免责声明:我需要一个纯JavaScript解决方案(无JQuery、下划线等) [更新]我现在正在阅读您的所有答案,我忘了提到我使用的是JavaScript,但环境不是网页,因此我没有DOM

在应用程序中,我收到一些HTML文本:由于应用程序无法显示(解释)HTML,我需要从服务器接收的字符串中删除任何HTML标记和实体

我尝试了以下方法,但这一个删除了HTML标记,但没有删除实体(例如&bnsp;):

stringFromServer.replace(/(]+)>)/ig,”;
感谢您的帮助

免责声明:我需要一个纯JavaScript解决方案(无JQuery、下划线等)


[更新]我现在正在阅读您的所有答案,我忘了提到我使用的是JavaScript,但环境不是网页,因此我没有DOM

您可以尝试以下内容:

var placeholder = document.createElement('div');
placeholder.innerHTML = stringFromServer;

var theText = placeholder.innerText;
.innerText
仅从元素中获取文本内容

但是,由于您似乎根本没有访问任何DOM操作的权限,因此可能需要使用某种HTML解析器,如以下所示:

stringFromServer.replace(/(]+)>|和[^;]+;)/ig,”)

可以使用不使用正则表达式或幻影div的解决方案

我将代码放在一个:

var sMyString=“嘿!”;
var oParser=new DOMParser();
var oDOM=oParser.parseFromString(sMyString,“text/xml”);
//打印根元素的名称或错误消息
警报(oDOM.documentElement.nodeName==“parsererror”?
“解析时出错”:oDOM.documentElement.textContent);

或者,解析新文档中的HTML片段,并从中执行dom操作(如果您希望将其与当前文档分开):


改用JavaScript的DOM api。参考:那么,您没有
innerText
/
textContent
等?这会变得很难看…我更新了帖子,很抱歉没有提到我不能使用HTML,但我只能操纵它。您可能需要编写(或使用)JSHTML解析器。试试这些:例如,我推荐这种方法。最干净、直截了当、跨浏览器,而且似乎也能处理实体:我没有在HTML中使用JavaScriptpage@3000:我在这个答案中包含了那些html解析器链接。我没有DOM,所以我不能使用DOMParser(我编辑了这个问题,很抱歉没有提及),也许这就是我要找的,但是你能解释一下正则表达式吗?@3000:没有一个正则表达式不会像
var myString=“This
Eh,没有。从服务器发送的包含HTML标记的字符串根本不是这样编码的。网页是从服务器发送的字符串,你现在正在查看一个。)但我知道你说的是javascript字符串当然,从技术上讲,网页类似于从服务器发送的字符串。但是发送的实际数据不包含
而不是

var placeholder = document.createElement('div');
placeholder.innerHTML = stringFromServer;

var theText = placeholder.innerText;
stringFromServer.replace(/(<([^>]+)>|&[^;]+;)/ig, "")
var sMyString = "<a id=\"a\"><b id=\"b\">hey!<\/b><\/a>";
var oParser = new DOMParser();
var oDOM = oParser.parseFromString(sMyString, "text/xml");
// print the name of the root element or error message
alert(oDOM.documentElement.nodeName == "parsererror" ?
       "error while parsing" : oDOM.documentElement.textContent);
var tmpDoc=document.implementation.createHTMLDocument("");
tmpDoc.body.innerHTML="<a href='#'>some text</a><p style=''> more text</p>";
tmpDoc.body.textContent;
some text more text