我有一个应该清除字符串的函数,实际上我有两种字符串"SATISFACTION._IS1.TOUTES_SITUATIONS.current_month_note"
或"SATISFACTION._IS1.TOUTES_SITUATIONS.note"
。
PS 有关信息TOUTES_SITUATIONS
是可变的
我要返回的是"TOUTES_SITUATIONS"
这是我的代码
const extractSituation: Function = (sentence: string): string => {
return sentence.substring(
sentence.lastIndexOf('1.') + 2,
sentence.lastIndexOf('.n'),
);
};
实际上,它仅处理一种类型的句子"SATISFACTION._IS1.TOUTES_SITUATIONS.note"
,而不处理"SATISFACTION._IS1.TOUTES_SITUATIONS.current_month_note"
我该如何处理它们?
答案 0 :(得分:3)
数组的索引从0开始。尝试如下操作:
const extractSituation: Function = (sentence: string): string => {
return sentence.split('.')[2];
};
答案 1 :(得分:1)
您也许可以为此使用正则表达式来提取前SATISFACTION._IS1.
和后.
之间的文本:
let s = "SATISFACTION._IS1.TOUTES_SITUATIONS.current_month_note"
let s2 = "SATISFACTION._IS1.TOUTES_someother.text__SITUATIONS.note"
let regex = /^SATISFACTION._IS1\.(.*)\..*$/
console.log(s.match(regex)[1])
console.log(s2.match(regex)[1])
答案 2 :(得分:1)
我假设:
1)您需要处理一个一般情况,其中“情境”可以是任何不带句点的字符串。
2)“位置”前后的中断由“。”分隔。
您可以从情况开始到句子结尾检索子字符串,然后找到下一个'的索引。查找仅包含情况的子字符串。
const extractSituation: Function = (sentence: string): string => {
// sentence truncated up to start of situation
var situation = sentence.substring(sentence.lastIndexOf('1.') + 2);
// Up to the next period from start of situation
return situation.substring(0, situation.indexOf('.'));
};
仅当您可以假设每种情况都以“ 1”开头时,此代码才有效。索引。