我正在尝试验证并传递有效的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"
中的间距任何改进正则表达式的帮助将不胜感激!
最佳答案
我不确定哪种数据包含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);