【问题标题】:How to filter strings for SteamIDs如何过滤 SteamID 的字符串
【发布时间】:2021-01-05 18:24:31
【问题描述】:

我有这样的字符串:

# 9034 2 "WOOLE" STEAM_1:0:186073148 00:28 56 0 active 196608
# 9025 3 "Yeah" STEAM_0:0:544561822 01:57 51 0 active 786432
# 9035 4 "Tarkion" STEAM_1:0:201330027 00:27 53 65 active 196608
# 8986 5 "SADOMAZO" STEAM_1:1:511042392 23:53 185 0 active 196608

我需要过滤掉蒸汽 ID f.e "STEAM_1:0:186073148" 来创建一个带有 ID 的数组。

对我来说,最好的 JavaScript 实现方式是什么?我考虑过 RegEx,但我对它的经验几乎为零。

如果有人可以帮助我,那就太棒了

最好的问候

【问题讨论】:

  • 一些问题 - 1. 这些是单独的 4 个字符串还是单个字符串,2. 您想要使用 STEAM_1:0:186073148 或任何包含 STEAM 的字符串进行精确匹配吗?

标签: javascript regex string


【解决方案1】:

假设您将字符串作为数组stringsArray

const stringsArray = ['# 9034 2 "WOOLE" STEAM_1:0:186073148 00:28 56 0 active 196608',
'# 9025 3 "Yeah" STEAM_0:0:544561822 01:57 51 0 active 786432',
'# 9035 4 "Tarkion" STEAM_1:0:201330027 00:27 53 65 active 196608',
'# 8986 5 "SADOMAZO" STEAM_1:1:511042392 23:53 185 0 active 196608']

然后您可以执行以下操作来获取您的 steamID 数组:

function getSteamIDs(stringsArray) {
  const steamIDs = []
  stringsArray.forEach(function (element) {
    const elementID = element.match(/STEAM_\d:\d:\d{9}/)[0]
    if(elementID && steamIDs.indexOf(elementID) < 0 ) steamIDs.push(elementID)
  })

  return steamIDs
}

console.log(getSteamIDs(stringsArray))

【讨论】:

  • @L4rs 我已经编辑了我的答案以更新您的问题。您还应该能够过滤以 STEAM_0 开头的 ID。此外,我将所有内容都包装在一个函数中。
  • 您好,感谢您的回答!我将 steamid 编辑为 STEAM_0,因为这两种方式都可以,而且我的第一个版本只包含 STEAM_1。
猜你喜欢
  • 2019-09-21
  • 1970-01-01
  • 2022-12-05
  • 2016-01-11
  • 2020-05-01
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
相关资源
最近更新 更多