[英]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.