javascript - 将带有特殊字符的字符串拆分为数组

标签 javascript

我的 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 美国能源部 (DOE) 部
32010 “卫生”部 HHS
32021 国土安全部,(12/30/2010)
32024 H&D部
32014 司法部
32031 “DOT”运输部

感谢您的帮助..

最佳答案

您可以将字符串拆分为多个字符,即 ",",并将它们推送到数组中。

var array = deptList.split('","');

我已使用 for 循环将它们输出到示例中的 div

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);

Sample JSFiddle

关于javascript - 将带有特殊字符的字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24658001/

相关文章:

javascript - 下载带有 http header 的文件

javascript - 使用 jquery 阻止特定链接

javascript - 将对象 ID 从 success 函数发送到 parse.com 中的另一个函数

javascript - 如何检查滚动条是否在底部

javascript - 在特定日期后上传的网站中的所有图像都拒绝加载

javascript - 当用户打开一个站点时,在 Magento 主页上打开一个弹出窗口一次

javascript - 算法:Next Greater Element I(来自 leetcode)

javascript - 单击超链接动态添加选择框

javascript - 可拖动的 JS Bootstrap 模式 - 性能问题

javascript - 使用数据表 javascript 服务器端在 php 中发布数据