繁体   English   中英

切换大小写以检查字符串是否包含子字符串

[英]Switch case in order to check if string contains a substring

我有一个字符串,想检查是否有带有 switch/case 的子字符串。 例如,如果 fnstring 是dies_ist_ein_test_diagnosen_erfassen则 fnstringCheck 返回true

怎么了? 谢谢你的提示

 var fnstring = (interim_transcript).toLowerCase().replace(/ /gi, "_");

 console.log('fnstring:', fnstring)
 var fnstringCheck = fnstring.indexOf("diagnosen_erfassen") !== -1;
 console.log(fnstringCheck)

 switch (fnstring) {
    case (fnstring.indexOf("_arztbrief_analysieren") !== -1):
        $('.analyzesBtn').trigger('click');
        break;

    case (fnstring.indexOf("_einleitung_erfassen") !== -1):
        changeSection('einleitung', mergedSource);
        break;

    case (fnstring.indexOf("diagnosen_erfassen") !== -1):
         changeSection('einleitung', mergedSource);
         break;

        ...

您需要在switch语句中true ,因为 case 返回truefalse 检查使用标识/严格相等运算符===

var fnstring = (interim_transcript).toLowerCase().replace(/ /gi, "_");

console.log('fnstring:', fnstring)
var fnstringCheck = fnstring.indexOf("diagnosen_erfassen") !== -1;
console.log(fnstringCheck)

switch (true) { // strict comparison
    case fnstring.indexOf("_arztbrief_analysieren") !== -1:
        $('.analyzesBtn').trigger('click');
        break;

    case fnstring.indexOf("_einleitung_erfassen") !== -1:
        changeSection('einleitung', mergedSource);
        break;

    case fnstring.indexOf("diagnosen_erfassen") !== -1:
        changeSection('einleitung', mergedSource);
        break;
}

使用 switch 语句时,会对 switch 中的表达式求值并与 case 中的值进行比较,以确定应该执行哪个 case 语句。 请参阅此处的文档。

在您的情况下,switch 语句有一个字符串表达式,但您的情况正在评估为真或假,因此它们都不匹配。

在我看来,用 if-else 检查来表达你的逻辑看起来更自然:

if (fnstring.indexOf("_arztbrief_analysieren") !== -1) {
    $('.analyzesBtn').trigger('click');
} else if (fnstring.indexOf("_einleitung_erfassen") !== -1) {
    changeSection('einleitung', mergedSource);
} else if (fnstring.indexOf("diagnosen_erfassen") !== -1) {
    changeSection('einleitung', mergedSource);
}

开关盒不是这样工作的。 提供给 switch 的参数用于与每种情况进行比较。 在您的情况下, switch接受一个字符串参数,并且所有情况都具有布尔属性。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM