我需要将HTML实体字符转换为它们的unicode版本。例如,当我有&
时,我只想&
。是否有特殊功能,或者我必须为replace()
< - >的每一对使用函数HTML Entity character
吗? Unicode character
?
提前致谢。
答案 0 :(得分:9)
即使Apps Script中没有DOM,您也可以解析HTML并以这种方式获取纯文本:
function getTextFromHtml(html) {
return getTextFromNode(Xml.parse(html, true).getElement());
}
function getTextFromNode(x) {
switch(x.toString()) {
case 'XmlText': return x.toXmlString();
case 'XmlElement': return x.getNodes().map(getTextFromNode).join('');
default: return '';
}
}
调用
getTextFromHtml("hello <div>foo</div>& world <br /><div>bar</div>!");
将返回
“你好foo&amp; world bar!”。
为了解释,第二个参数为“true”的Xml.parse将文档解析为HTML页面。然后我们遍历文档(将修补缺少的HTML和BODY元素等,并转换为有效的XHTML页面),将文本节点转换为文本并扩展所有其他节点。
答案 1 :(得分:0)
在Javascript中,(我假设你正在使用它),没有内置函数,但你可以将内容分配给html标签,然后读出文本。这是jQuery的一个例子:
function htmlDecode(value){
return $('<div/>').html(value).text();
}
请注意,标记不需要实际附加到DOM。这只是创建一个新标签,读出其内容,然后扔掉它。你可以在vanilla Javascript中完成一些非常类似的东西,只需几行。