使用键和清理功能解析嵌套字符串-javascript
我有一个数据字符串,需要对其进行解析和清理,以便以人类可读的格式输出。我想使用javascript将字符串转换成键控数组,保留嵌套的层次结构 例如,我有以下字符串:使用键和清理功能解析嵌套字符串-javascript,javascript,jquery,json,parsing,lexer,Javascript,Jquery,Json,Parsing,Lexer,我有一个数据字符串,需要对其进行解析和清理,以便以人类可读的格式输出。我想使用javascript将字符串转换成键控数组,保留嵌套的层次结构 例如,我有以下字符串: (id, foo bar,category(subCategory,location(id)), something) 我想对其进行解析,并使用一个键控数组将其输出到如下页面: <ul> <li>id<li> <li>foo bar</li> &l
(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>
- id
-
- 富吧
- 类别
- 子类别
-
- 位置
- 身份证
- 某物
使用javascript实现这一点最灵活的方法是什么,同时删除值和逗号之间的空格,但保留单词之间的空格
谢谢 您可以使用
将替换为正则表达式来实现所需的功能。替代者将是:
将/\(/g
(开放式)替换为'- '
(/\s*\(\s*/g
以删除周围的空格(如果有))
用'
'
(/\s*\)\s*/g
替换)/g
(关闭parens)以删除周围的空格(如果有)
将/,/g
(逗号)替换为“
”
。(/\s*,\s*/g
删除周围的空间(如果有)
var str=“(id,foo bar,category(subCategory,location(id)),something)”;
str=str.replace(/\s*\(\s*/g,- )
.替换(/\s*\)\s*/g,
'))
.替换(/\s*,\s*/g,);
document.getElementById(“结果”).innerHTML=str代码>
您可以使用将替换为正则表达式来实现所需的功能。替代者将是:
将/\(/g
(开放式)替换为'- '
(/\s*\(\s*/g
以删除周围的空格(如果有))
用'
'
(/\s*\)\s*/g
替换)/g
(关闭parens)以删除周围的空格(如果有)
将/,/g
(逗号)替换为“
”
。(/\s*,\s*/g
删除周围的空间(如果有)
var str=“(id,foo bar,category(subCategory,location(id)),something)”;
str=str.replace(/\s*\(\s*/g,- )
.替换(/\s*\)\s*/g,
'))
.替换(/\s*,\s*/g,);
document.getElementById(“结果”).innerHTML=str代码>
请阅读。关键短语:“搜索、研究”和“解释……任何阻碍你自己解决问题的困难”。你可以使用拆分方法,我想,你的解决方案应该是一种递归,解析文本不是一个简单的操作,不能低估它。这与词法分析有什么关系?请阅读。关键短语:“搜索、研究”和“解释……任何阻碍你自己解决问题的困难”。你可以使用拆分方法,我想,你的解决方案应该是一种递归,解析文本不是一个简单的操作,不能低估它。这与词法分析有什么关系?