我对字符串搜索有疑问。 在我的应用中,我需要在单元内显示一些主题。 主题标题如下:
"Unit 1: First lesson"
"Unit 2 and 3: Introduction"
"Unit 4: Exercise"
"Unit 5 and 6: Social Networking"
如您所料,我需要在单元1中显示第一个主题,并在单元2和3中显示第二个主题。 但是我不知道如何检测主题所属的单元。 如果您有什么好主意,请帮助我。
答案 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);
});
希望这会有所帮助,