我有一个通过单击按钮运行的函数。该函数将获取某个元素内的所有 HTML。效果很好。但是,我想先清理返回的字符串(HTML),然后再在我的函数中进一步使用它:
exportHTML(){
const element = document.getElementById('content');
const innerHTML = element.innerHTML;
}
这有效。但由于使用 Angular,Angular 语法根据源代码中的条件包含在 HTML 中。例如:
<div _ngcontent-c1=""></div>
或者
<div ng-reflect-klass="panel album"></div>
<div ng-reflect-ng-class="blue"></div>
是否有可能过滤掉这些类型的值?对于上面的第二个和第三个示例,其中的类会经常更改:
- 是否可以过滤并删除所有_ngcontent-c1=""文本
- 是否可以过滤并删除所有 ng-reflect-klass 和 ng-reflect-ng-class ,包括以下左引号和右引号(以删除里面)
最佳答案
好的,那么属性是不变的,但属性的值会改变?如果是这样,您可以尝试以下操作:
.replace(/ng-reflect-klass=\".?\"/,"").replace(/ng-reflect-ng-class=\".?\"/,"").replace(/_ngcontent-c1=\".*?\"/,"")
var content = 'stuff<div ng-reflect-klass="panel album"></div><div ng-reflect-ng-class="blue"></div><div _ngcontent-c1=""></div>end stuff';
console.log(content.replace(/ng-reflect-klass=\".*?\"/g,"").replace(/ng-reflect-ng-class=\".*?\"/g,"").replace(/_ngcontent-c1=\".*?\"/g,""));
查看控制台查看结果。
关于Javascript - 从 ".innerHTML"结果中删除某些字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54461907/