[英]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 返回true
或false
。 检查使用标识/严格相等运算符===
。
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.