繁体   English   中英

在处理之前从 json/js 提要中删除所有 javascript 标签

[英]removing all javascript tags from a json/js feed before processing

我试图在处理之前从 js 提要中删除一些不需要的评论

如果我试试这个

 data = data.replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, ' '); console.log(data);

我得到错误 data.replace is not a function.. 这是因为它仍然是对象格式吗?

我这样做的原因是饲料中有

 test test <script>console.log("some script")</script> more text

我需要在处理之前将其删除,因为在淘汰赛中无法加载此数据

data 是一组json格式的数据。

 var data = [ { 'id': '1', 'firstName': 'fname1', 'lastName': 'lname2' 'text': 'Text' }, { 'id': '2', 'firstName': 'fnam2', 'lastName': 'lname2' 'text': 'text text <script>console.log("some script")</script> text' }]

没错,您不能对对象应用replace 它需要是一个字符串,因此您应该遍历所有元素并将replace应用于相关字段

data.map(function (element) {
    element.text = element.text
        .replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, ' ');
})

要简单地删除所有标签,您可以使用 JavaScript 提供的 DOM 方法:

 var data = [ { 'id': '1', 'firstName': 'fname1', 'lastName': 'lname2', 'text': 'Text' }, { 'id': '2', 'firstName': 'fnam2', 'lastName': 'lname2', 'text': 'text text <script>console.log("some script")</'+'script> text' }]; var cleaned = data.map(function(item) { var d = document.createElement('div'); d.innerHTML = item.text; // find all tags and strip them var tags = d.getElementsByTagName('*'); [].forEach.call(tags, function(tag) { tag.parentNode.removeChild(tag); }); // save cleaned text item.text = d.innerHTML; return item; }); console.log(cleaned);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM