tar*_*eld 2 javascript jquery wildcard switch-statement
如果我的javascript ajaxes到我的服务器并返回49明文格式的ID [49]是有一种方式,我做这样的事情...(我已经测试,并没有工作)
switch(data)
{
case '[*]':
(..etc.)
break;
}
Run Code Online (Sandbox Code Playgroud)
通配符是哪里*,我想确保它被包含在两个方括号内?
因为我需要检查是否有其他单词返回error,我保留了default意外错误,任何想法?:) 谢谢!
Tra*_*er1 11
您可以明确地切换到true,这将对每个case语句使用评估.
switch (true) {
case ((/^\[\d+\]$/).test(data)):
//matches data;
break;
case (data == "something else"):
//...
break;
default:
//...
}Run Code Online (Sandbox Code Playgroud)
但是,如果你有少于4-5个案例,那么最好使用if/else if/else if/else blocks.
if ((/^\[\d+\]$/).test(data)) {
//matches data;
} else if (data == "something else") {
//...
} else {
//...
}Run Code Online (Sandbox Code Playgroud)
我通常在我的响应方法中对服务/休息调用进行一些错误捕获,这样如果出现错误,我几乎总是返回一个带有错误属性的正确json.
try {
if (response.responseText.indexOf("<html") >= 0) {
throw response.responseText;
}
var data = JSON.parse(response.responseText);
if (data.error)
throw data.error;
//handle response data object.
if ((/^\[\d+\]$/).test(data)) {
//matches data;
} else if (data == "something else") {
//...
} else {
//...
}
} catch(err) {
if (err && err.message) {
//use err.message
} else if (err && err.toString().indexOf("<html") >= 0) {
//handle error text
}
}
Run Code Online (Sandbox Code Playgroud)