How to use a wildcard in switch statement

javascript, switch-statement

Solution

This little trick will do (see jsFiddle):

var data = "INSERT_OK_BLABLA";

switch (data) {
case "INSERT_OK_" + data.slice("INSERT_OK_".length): // emulate INSERT_OK_*
    var url = "index.php?op=ok&id=" + data.slice("INSERT_OK_".length);
    alert(url);
    break;
default:
    alert("default");
    break;
}

or using `startsWith` (see jsFiddle):

switch (true) {
case data.startsWith("INSERT_OK_"):
    var url = "index.php?op=ok&id=" + data.slice("INSERT_OK_".length);
    alert(url);
    break;
default:
    alert("default");
    break;
}

Problem

I have data returned from an ajax call: `INSERT_OK_something`. I would like to use a switch statement with a wildcard like `INSERT_OK_*` and pass "something" like a id variable to my url. ``` switch (data) { case "ERROR": $("#alert").dialog( "open" ).html( "Error" ); return false; case "INSERT_OK_*": var url = "index.php?op=ok&id=" + something; window.location = url ; return false; } ``` How would I do this?

Original source