在处理之前从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);
我得到了错误数据。位置不是函数。。这是因为它仍然是对象格式吗?
我这样做的原因是有在饲料
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);
相关文章:
- 谷歌地图/Angular JS:地图更新并不总是反映数据,并且可以't删除标记
- 在提交触发器之前从查询输入中删除标记
- 如何将删除标记替换为输入类型文本
- 从Google Maps API V3中删除标记
- 使用正则表达式删除标记时,Firefox和Chrome之间存在不一致
- 通过JavaScript或jQuery删除P标记,其中包含不间断的空格
- 如何按id从表中删除标记
- 从谷歌地图xml中删除标记
- 在AngularJS模型中添加/删除标记
- YQL 从请求的页面中删除 标记中的数据
- 如何从谷歌地图 v3 中删除标记
- 所见即所得 删除标记
- 从谷歌地图帮助中删除标记 - JavaScript
- 谷歌地图 - 在更新之前删除标记
- 从文本中删除 标记
- JQuery - 删除标记脚本
- 从字符串中删除