JS中的条件子字符串

时间:2019-02-12 18:06:58

标签: javascript substring

我有一个应该清除字符串的函数,实际上我有两种字符串"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"

我该如何处理它们?

3 个答案:

答案 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”开头时,此代码才有效。索引。