我正在尝试验证并传递有效的JSON以存储在数据库中。我还允许用户复制元数据。不幸的是,下面的内容失败了,我想知道如何只删除有效的URL,而不从其他键值对中删除空格。
无效示例:
{ "hello" : "http : //google.com" }
有效示例:
var metaDataContent = {"hello":"http://google.com"}
var metaDataContent = {"typeId":5,"mainEventId":301049,"meetingId":54,"title":"Hour of Power"}
我已经尝试过metaDataContent.replace(RegExp(" ", "g"), "");
,它会正确删除第一个示例并在数据库中保存,但不幸的是,还会删除"title":"HourofPower"
非常感谢任何有关改进正则表达式的帮助!
答案 0 :(得分:1)
我不确定哪种数据包含metaDataContent
,但假设这是一个带有JSON格式的字符串,您可以将此字符串强制转换为对象,然后遍历其属性。如果属性值以字符串“ http ”开头,请执行替换:
var obj = JSON.parse(metaDataContent);
for (var p in obj) {
if (obj[p].indexOf('http') === 0){
obj[p] = obj[p].replace(/ /g, "");
}
}
metaDataContent = JSON.stringify(obj);