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

时间:2019-04-19 01:28:17

标签: javascript string algorithm search

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

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

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

2 个答案:

答案 0 :(得分: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 :(得分: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);
});

希望这会有所帮助,