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

问题描述 投票:0回答:3

你好我是新的放纵请:)

我正在做一个带有很多动态值的标签生成器,这里是最终输出:

1554710490545:[B @ 773c0cef:{“header”:{“eventId”:“c0afad22-6472-4f23-9a5d-1c5e0b48024e”,“tmst”:“1554710490545”,“agencyId”:“tazz”,“customerId”:“ 02c“,”type“:”EzNavigationHitPayload“},”trackingEzNavHit“:{”hitBase“:{”hitId“:”8735b582-2be7-4764-ac83-da0e4d2206df“,”ezakusBid“:”a40afeb4-066f-4dc8-9de6 -e450facecee9“,”tmst“:”1554710490545“,”wid“:”widtest“,”cookieOk“:true,”userAgent“:”Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,like 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“},”ezVarious“:{”忽略“:”STRING_TO_CHECK“}}}

我只想保留这一部分:

{“hitId”:“8735b582-2be7-4764-ac83-da0e4d2206df”,“ezakusBid”:“a40afeb4-066f-4dc8-9de6-e450facecee9”,“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”},“ezVarious”:{“忽略 “:” STRING_TO_CHECK“}}}

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

javascript reactjs
3个回答
-2
投票

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

所以你可以在使用之后得到字符串

let str = `1554710490545:[B@773c0cef:{"header":{"eventId":"c0afad22-6472-4f23-9a5d-1c5e0b48024e", "tmst":"1554710490545","agencyId":"tazz","customerId":"02c", "type":"EzNavigationHitPayload"},"trackingEzNavHit": {"hitBase":{"hitId":"8735b582-2be7-4764-ac83-da0e4d2206df", "ezakusBid":"a40afeb4-066f-4dc8-9de6-e450facecee9","tmst":"1554710490545", "wid":"widtest","cookieOk":true, "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like 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"}, "ezVarious":{"ignore":"STRING_TO_CHECK"}}}`;

let x = str.match(/({.*})/);
console.log(JSON.parse(x[1]).trackingEzNavHit)

0
投票

这是json数据。因此,您可以按键访问所需的值。例如,首先取空白json

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

And you can create new json data as your wish

-1
投票

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

const json = {
  "1554710490545": {
    "B@773c0cef": {
      "header": {
        "eventId": "c0afad22-6472-4f23-9a5d-1c5e0b48024e",
        "tmst": "1554710490545",
        "agencyId": "tazz",
        "customerId": "02c",
        "type": "EzNavigationHitPayload"
      },
      "trackingEzNavHit": {
        "hitBase": {
          "hitId": "8735b582-2be7-4764-ac83-da0e4d2206df",
          "ezakusBid": "a40afeb4-066f-4dc8-9de6-e450facecee9",
          "tmst": "1554710490545",
          "wid": "widtest",
          "cookieOk": true,
          "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like 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"
        },
        "ezVarious": {
          "ignore":"STRING_TO_CHECK"
        }
      }
    }
  }
};

console.log(json[Object.keys(json)[0]][Object.keys(json[Object.keys(json)[0]])].trackingEzNavHit.hitBase);
© www.soinside.com 2019 - 2024. All rights reserved.