我有字符串搜索的问题。在我的应用程序中,我需要在单元内显示一些主题。主题标题如下:
"Unit 1: First lesson"
"Unit 2 and 3: Introduction"
"Unit 4: Exercise"
"Unit 5 and 6: Social Networking"
正如您所料,我需要在单元1中显示第一个主题,在第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)
你可以使用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);
});
希望这可以帮助,