我有一个coldfusion函数,它将以下字符串返回给jQuery函数。这可能不是最好的方法,但我现在仍坚持使用它。
var str = '1^Successfully logged in^0^1^1^5^NULL^xyz^100';
最近更新了coldfusion函数以从查询生成结构数组,对其进行序列化,然后将其附加到返回字符串。 jQuery函数收到的结果字符串现在如下:
var str = '1^Successfully logged in^0^1^1^5^NULL^xyz^100^[[4,"No credit card"],[5,"Test"]]'
直到我们添加了序列化数组,我们只是简单地解析了这个字符串(简化了这个问题):
var a = str.split("^")[0];
var b = str.split("^")[1];
var c = str.split("^")[2];
var d = str.split("^")[3] || -1;
var e = str.split("^")[4] || -1;
var f = str.split("^")[5] || -1;
var g = str.split("^")[6] || 0;
var h = str.split("^")[7] || 0;
var i = str.split("^")[8] || 0;
如何解析字符串末尾的数组,以便它执行类似下面的操作(这实际上是伪代码,可能需要循环):
var errors = str.split("^")[9];
if(we find an error of "4"){
$('#divAlert').html('No credit card')
}
if(we find an error of "5"){
$('#divAlert2').html('Test')
}
答案 0 :(得分:1)
您可以解析第9个数组位置:
^(?!.*(0|1|2|3|4|9|11|12|13|14|15|16|18|19|250)).*$
考虑缓存 str.split(" ^")。
结果是:
var f = JSON.parse(str.split("^")[9] || '[]');

var str = '1^Successfully logged in^0^1^1^5^NULL^xyz^100^[[4,"No credit card"],[5,"Test"]]'
var tmpArr = str.split("^");
var a = tmpArr[0];
var b = tmpArr[1];
var c = tmpArr[2];
var d = tmpArr[3] || -1;
var e = tmpArr[4] || -1;
var f = tmpArr[5] || -1;
var g = tmpArr[6] || 0;
var h = tmpArr[7] || 0;
var i = tmpArr[8] || 0;
var f = JSON.parse(tmpArr[9] || '[]');
console.log(f);
f.forEach(function(ele, idx) {
switch (ele[0]) {
case 4:
$('#divAlert').html((idx, e) => {return e + ele[1] + '<br/>'});
break;
case 5:
$('#divAlert').html((idx, e) => {return e + ele[1] + '<br/>'});
break;
}
});
&#13;