繁体   English   中英

如何使用 JavaScript 将使用单个分隔符的字符串解析为分层结构?

[英]How to parse a string that uses individual delimiters into a hierarchical structure using JavaScript?

考虑到字符串使用分隔符来表示级别(非常类似于例如降价标头),是否有 JavaScript 库或可用于将字符串解析为分层数据结构的模式/良好实践?

# H1
## H2
### H3
#### H4

所以,如果我有这个字符串:

'#H1 ##H1.1 ##H1.2 #H2 #H2.1 #H3 #H4 ##H4.1 ###H4.1.1 ###H4.1.2 ###H4.1.3 ####H4.1.3.1 ###4.1.4'

我想把它转换成(具体结构不是很重要。可以是 JSON 或其他什么):

H1
    H1.1
    H1.2
H2
    H2.1
H3
H4
    H4.1
        H4.1.1
        H4.1.2
        H4.1.3
            H4.1.3.1
        H4.1.4

当然,有很多方法可以实现这一点,而且并不难做到(事实上,我使用split编写了一个快速实现,并迭代令牌数组,计算空令牌以确定级别)。 但我认为这一定已经解决了,也许有一个现成的解决方案,比我的更优雅和高效。 也许正则表达式向导可以在一行中完成?

无法想出纯正则表达式,但这算作单行。

 const string = '#H1 ##H1.1 ##H1.2 #H2 ##H2.1 #H3 #H4 ##H4.1 ###H4.1.1 ###H4.1.2 ###H4.1.3 ####H4.1.3.1 ###H4.1.4', output = string.replace(/ #/g, '\\n').replace(/#/g, '\\t').trim() console.log(output)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM