当前位置: 代码迷 >> JavaScript >> JS中的条件子字符串
  详细解决方案

JS中的条件子字符串

热度:52   发布时间:2023-06-08 09:22:44.0

我有一个应该清除字符串的函数,实际上我有两种字符串"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开始。尝试如下操作:

const extractSituation: Function = (sentence: string): string => {
    return sentence.split('.')[2];
};

您也许可以为此使用正则表达式来提取第一个SATISFACTION._IS1.之间的文本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]) 

我假设:

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”开头时,此代码才有效。 指数。

  相关解决方案