我试图在处理之前从js feed中删除一些不需要的注释

如果我尝试这个



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





我收到错误data.replace不是一个函数..这是因为它仍然处于对象格式吗?

我这样做的原因是Feed中有



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 - 在处理之前从json/js feed中删除所有javascript标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31197311/

10-10 13:48