這是我想要做的只是一個簡單的例子:是否可以在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