使用键和清理功能解析嵌套字符串-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

我有一个数据字符串,需要对其进行解析和清理,以便以人类可读的格式输出。我想使用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>
  • 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
    请阅读。关键短语:“搜索、研究”和“解释……任何阻碍你自己解决问题的困难”。你可以使用拆分方法,我想,你的解决方案应该是一种递归,解析文本不是一个简单的操作,不能低估它。这与词法分析有什么关系?请阅读。关键短语:“搜索、研究”和“解释……任何阻碍你自己解决问题的困难”。你可以使用拆分方法,我想,你的解决方案应该是一种递归,解析文本不是一个简单的操作,不能低估它。这与词法分析有什么关系?