Javascript 如何从字符串中删除动态部分?

Javascript 如何从字符串中删除动态部分?,javascript,reactjs,Javascript,Reactjs,你好,我是新来的,请宽容:) 我正在做一个带有大量动态值的标记生成器,下面是最终输出: 1554710490545:[B@773c0cef:{“标题”:{“事件ID”:“c0afad22-6472-4f23-9a5d-1c5e0b48024e”, “tmst”:“1554710490545”,“代理ID”:“tazz”,“客户ID”:“02c”, “类型”:“EzNavigationHitPayload”},“trackingEzNavHit”: {“hitBase”:{“hitId”:“873

你好,我是新来的,请宽容:)

我正在做一个带有大量动态值的标记生成器,下面是最终输出:

1554710490545:[B@773c0cef:{“标题”:{“事件ID”:“c0afad22-6472-4f23-9a5d-1c5e0b48024e”, “tmst”:“1554710490545”,“代理ID”:“tazz”,“客户ID”:“02c”, “类型”:“EzNavigationHitPayload”},“trackingEzNavHit”: {“hitBase”:{“hitId”:“8735b582-2be7-4764-ac83-da0e4d2206df”, “ezakusBid”:“a40afeb4-066f-4dc8-9de6-E450FaceE9”,“tmst”:“1554710490545”, “wid”:“widtest”,“cookieOk”:正确, “用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36 (KHTML,像Gecko)Chrome/73.0.3683.86 Safari/537.36,“ipV4”:“77.154.199.100,“ezCustom”: {“eznode”:“gfnode-001”,“版本”:“4.0.10”,“代理ID”:“tazz”,“客户ID”:“02c”, “EZVariable”:{“忽略”:“字符串检查”}

我只想保留这一部分:

{“hitId”:“8735b582-2be7-4764-ac83-da0e4d2206df”, “ezakusBid”:“a40afeb4-066f-4dc8-9de6-E450FaceE9”,“tmst”:“1554710490545”, “wid”:“widtest”,“cookieOk”:正确, “用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36 (KHTML,像Gecko)Chrome/73.0.3683.86 Safari/537.36,“ipV4”:“77.154.199.100”,“ezCustom”: {“eznode”:“gfnode-001”,“版本”:“4.0.10”},“agencyId”:“tazz”,“customerId”:“02c”}, “ezvariable”:{“ignore”:“STRING_TO_CHECK”}}

以粗体显示的所有值都是动态生成的,每次都会更改。
我尝试使用正则表达式,但似乎很难

从第一个大括号开始{,一切似乎都是JSON

因此,您可以使用

let str=`1554710490545:[B@773c0cef:{“header”:{“eventId”:“c0afad22-6472-4f23-9a5d-1c5e0b48024e”,“tmst”:“1554710490545”,“agencyId”:“tazz”,“customerId”:“02c”,“type”:“EzNavigationHitPayload”},“trackingEzNavHit”:{“hitBase”:“8735b582-2be7-4764-ac83-da0e4d2206df”,“ezakusBid”:“a40afeb4-066f-4dc8-9de6-E450Face9”,“tmst”:“1554710490545”,“wid”:“widtest”,“cookieOk”:true,“userAgent”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/73.0.3683.86 Safari/537.36”,“ipV4”:“77.154.199.100”,“ezCustom”:{“eznode”:“gfnode-001”,“version”:“4.0.10”{,“agencyId”:“tazz”,“customerId”:“02c”;“EZVariable”:“忽略”字符串检查”};
设x=str.match(/({.*})/);

console.log(JSON.parse(x[1]).trackingEzNavHit)
这是JSON数据。因此,您可以通过键访问所需的值。例如, 首先是空白json

 let output={}
 output["hintId"]= data.hintId
 output["ezakusBid"] = data.ezakusBid

And you can create new json data as your wish

如果您有权访问JSON,请使用它,而不是解析字符串。。。 这里有一种动态访问trackingEzNavHit.hitBase的方法,如果第一个键可能不时不同

const json={
"1554710490545": {
"B@773c0cef": {
“标题”:{
“事件ID”:“c0afad22-6472-4f23-9a5d-1c5e0b48024e”,
“tmst”:“1554710490545”,
“agencyId”:“tazz”,
“客户ID”:“02c”,
“类型”:“EzNavigationHitPayload”
},
“trackingEzNavHit”:{
“hitBase”:{
“hitId”:“8735b582-2be7-4764-ac83-da0e4d2206df”,
“ezakusBid”:“a40afeb4-066f-4dc8-9de6-E450FaceE9”,
“tmst”:“1554710490545”,
“wid”:“widtest”,
“cookieOk”:没错,
“用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/73.0.3683.86 Safari/537.36”,
“ipV4”:“77.154.199.100”,
“ezCustom”:{
“eznode”:“gfnode-001”,
“版本”:“4.0.10”
},
“agencyId”:“tazz”,
“客户ID”:“02c”
},
“各种各样的”:{
“忽略”:“字符串检查”
}
}
}
}
};

log(json[Object.keys(json)[0]][Object.keys(json[Object.keys(json)[0]])]].trackingEzNavHit.hitBase);
告诉我们您希望排除该部分的依据。只是说,但生成随机ID而不将其存储在数据模型中以供进一步导航可能不是一种非常有效的模式。当您有JSON(可以解析并简单使用)时,使用一个大正则表达式只会表明出了问题。请不要格式化JSON输出,只需将其生贴并美化即可。1554710490545:[B@773c0cef是一个生成的加密字符串,而不是json的一部分{?你甚至可以检查右大括号来确认。你确定吗?对我来说,它看起来像两个键,他忘记了json结构的第一部分和最后一部分。
tmst
与第一个数字相同。