如何检测字符串中的单位?

问题描述 投票:2回答:2

我有字符串搜索的问题。在我的应用程序中,我需要在单元内显示一些主题。主题标题如下:

"Unit 1: First lesson"
"Unit 2 and 3: Introduction"
"Unit 4: Exercise"
"Unit 5 and 6: Social Networking"

正如您所料,我需要在单元1中显示第一个主题,在第2单元和第3单元中显示第二个主题。但我不知道如何检测属于哪个单元的主题。如果您有任何好主意,请帮助我。

javascript string algorithm search
2个回答
3
投票

您可以使用正则表达式和匹配来提取数字。

以下代码创建一个对象数组,其中包含主题标题及其所属的单位

const topics = [
    "Unit 1: First lesson",
    "Unit 2 and 3: Introduction",
    "Unit 4: Exercise",
    "Unit 5 and 6: Social Networking"
];

const topicUnits = topics.reduce((acc, t) => {
    acc.push({ 
       topic: t,
       units: t.split(":")[0].match(/\d/g)
    })
   
    return acc;
}, [])

console.log(topicUnits)

1
投票

你可以使用match()检索这些:

const units = [
  "Unit 1: First lesson",
  "Unit 2 and 3: Introduction",
  "Unit 4: Exercise",
  "Unit 5 and 6: Social Networking"
];

units.forEach(title => {
  // Only match on string before the ':'
  let unitNumbers = title.substr(0, title.indexOf(':')).match(/([0-9]+)/g);
  console.log(title, unitNumbers);
});

希望这可以帮助,

© www.soinside.com 2019 - 2024. All rights reserved.