这是我想要做的只是一个简单的例子:是否可以在switch语句中使用.contains()?
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”)...'这简直是愚蠢的 – mplungjan
是的,但它不会达到您的期望。用于开关的表达式被评估*一次* - 在这种情况下,结果是真/假,而不是字符串。 – user2864740