【发布时间】:2014-09-10 16:12:39
【问题描述】:
这只是我正在尝试做的一个简单示例:
switch (window.location.href.contains('')) {
case "google":
searchWithGoogle();
break;
case "yahoo":
searchWithYahoo();
break;
default:
console.log("no search engine found");
}
如果不可能/不可行,那么更好的选择是什么?
解决方案:
在阅读了一些回复后,我发现以下是一个简单的解决方案。
function winLocation(term) {
return window.location.href.contains(term);
}
switch (true) {
case winLocation("google"):
searchWithGoogle();
break;
case winLocation("yahoo"):
searchWithYahoo();
break;
default:
console.log("no search engine found");
}
【问题讨论】:
-
你试过用正则表达式吗?
-
没有。它必须是
switch(true) { case location.href.contains("google") ...,这很愚蠢 -
是的,但它不会达到您的预期。用于切换的表达式被评估一次 - 在这种情况下,结果将是真/假,而不是字符串。
-
你需要使用 contains ('Google') 并且 no if 在 switch 中不起作用。否则使用
标签: javascript switch-statement contains