我有一串数据需要以人类可读的格式解析和清理输出。我想使用javascript将字符串转换为键控数组,保留嵌套层次结构。
例如,我有这个字符串:
(id, foo bar,category(subCategory,location(id)), something)
我想解析这个并使用键控数组在这样的页面上输出:
<ul>
<li>id<li>
<li>foo bar</li>
<li>category
<ul>
<li>subCategory<li>
<li>location
<ul>
<li>id</li>
</ul>
</li>
</ul>
</li>
<li>something</li>
</ul>
使用javascript实现此目的的最灵活方法是什么,同时还删除值和逗号之间的空格,但保留字之间的空格?
谢谢!
答案 0 :(得分:0)
您可以将replace
与正则表达式结合使用来实现您想要的效果。替换将是:
/\(/g
替换'<ul><li>'
(开放的parens)。 (/\s*\(\s*/g
删除周围空格(如果有)/\)/g
替换'</li></ul>'
(关闭parens)。 (/\s*\)\s*/g
删除周围空格(如果有)/,/g
(逗号)替换为'</li><li>'
。 (/\s*,\s*/g
删除周围空格(如果有)
var str = "(id, foo bar,category(subCategory,location(id)), something)";
str = str.replace(/\s*\(\s*/g, '<ul><li>')
.replace(/\s*\)\s*/g, '</li></ul>')
.replace(/\s*,\s*/g, '</li><li>');
document.getElementById("result").innerHTML = str;
<div id="result"></div>