我的Ajax返回一大串部门名称,如下所示。
var dept='<list>"32001 Dept of (THE) DOE","32010 Dept of "Health"HHS","32021 Dept of DHS,(12/30/2010)","32024 Dept of H&D","32014 Dept of DOJ","32031 Dept of "DOT", Transport"</list>';我想把这6个部门按部门编号分开,并把它放在一个数组中,但是描述本身有引号、昏迷和所有特殊字符。唯一一致的部分是布格宁中的5位数的部份。
我怎样才能解决这个问题。
i tried to do..
var start = dept.indexOf("<list>");
var stop = dept.indexOf("</list>");
var deptList = dept.substring(start+7,stop);
var deptlist2 = deptList.split('"');
var deptArr=[];
for(x=0; x<deptlist2.length;x++){
if(deptlist2[x].length>1){
deptArr.push(deptlist2[x]);
}
}期望的输出应该是
32001能源部
32010“健康”卫生保健部
32021人口与健康部,(2010年12月30日)
32024 H&D部
司法部32014部
32031交通部“交通部”
谢谢你的帮助..。
发布于 2014-07-09 15:50:53
您可以在多个字符(即"," )上拆分字符串,并将它们推入数组中。
var array = deptList.split('","');我使用一个div循环将它们输出到示例中的一个for。
HTML:
<div id="output-panel"></div>JS:
var dept = '<list>"32001 Dept of (THE) DOE","32010 Dept of "Health"HHS","32021 Dept of DHS,(12/30/2010)","32024 Dept of H&D","32014 Dept of DOJ","32031 Dept of "DOT", Transport"</list>';
var start = dept.indexOf("<list>");
var stop = dept.indexOf("</list>");
var deptList = dept.substring(start + 7, stop);
var array = deptList.split('","');
var newHTML = "";
for (var i = 0; i < array.length; i++) {
newHTML = newHTML + '<span>' + array[i] + '</span><br/>';
}
$("#output-panel").html(newHTML);样本JSFiddle
发布于 2014-07-09 16:02:15
假设在部门名称中找不到序列",",您可以这样做:
var dept='<list>"32001 Dept of (THE) DOE","32010 Dept of "Health"HHS","32021 Dept of DHS,(12/30/2010)","32024 Dept of H&D","32014 Dept of DOJ","32031 Dept of "DOT", Transport"</list>';
dept = dept.replace(/<\/?list>/g, '');
result = dept.split('","')
console.log(result);http://jsbin.com/boqaw/1
但是,这是一个非常糟糕的API,您应该使用JSON,或者至少使用XML。
https://stackoverflow.com/questions/24658001
复制相似问题