Questo è solo un semplice esempio di quello che sto cercando di fare:È possibile utilizzare .contains() in un'istruzione switch?
switch (window.location.href.contains('')) {
case "google":
searchWithGoogle();
break;
case "yahoo":
searchWithYahoo();
break;
default:
console.log("no search engine found");
}
Se non è possibile/fattibile ciò che sarebbe un'alternativa migliore?
Soluzione:
Dopo aver letto alcune delle risposte che ho trovato quanto segue per essere una soluzione semplice.
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");
}
hai provato a usare regex? –
No. Dovrebbe essere 'switch (true) {case location.href.contains (" google ") ...' che è semplicemente stupido – mplungjan
Sì, ma non farà quello che ti aspetti. L'espressione utilizzata per lo switch viene valutata * una volta * - in questo caso sarebbe vero/falso come risultato, non una stringa. – user2864740