如何在switch语句中使用通配符

Pao*_*ssi 3 javascript switch-statement

我有从ajax调用返回的数据:INSERT_OK_something.

我想使用带有通配符的switch语句,并将像INSERT_OK_*"id"变量这样的"something"传递给我的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; 
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

huy*_*itw 6

这个小技巧会做(见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;
}
Run Code Online (Sandbox Code Playgroud)

或使用startsWith(见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;
}
Run Code Online (Sandbox Code Playgroud)