簡體   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