JavaScript:去除元数据中的URL,而不剥离所有字符串中的空格

JavaScript: Stripping URLs in meta data without stripping whitespace in all strings

本文关键字:剥离 空格 字符串 URL 元数据 JavaScript      更新时间:2023-09-26

我正在尝试验证并传递有效的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);