【发布时间】:2018-06-12 02:00:44
【问题描述】:
我有一个这样的字符串:
&topic1
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do
eiusmod tempor incididunt ut
&topic2
labore et dolore magna aliqua. Ut enim ad minim
www.example.com/test?id=1&name=abc
veniam, quis nostrud exercitation ullamco lab
&topic3
hello
每次有(beginning of line) + & + name + \n,都要解析成一个新的item。
用 Javascript 以这种方式解析它的最自然方式是什么:
[['topic1', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit,\nsed do\neiusmod tempor incididunt ut'],
['topic2', 'labore et dolore magna aliqua. Ut enim ad minim\nwww.example.com/test?id=1&name=abc\nveniam, quis nostrud exercitation ullamco lab'],
['topic3', 'hello']]
?
我对这个方法有几个问题:
var s = "&topic1\nLorem ipsum dolor sit amet, consectetur adipiscing elit,\nsed do\neiusmod tempor incididunt ut\n\n&topic2\nlabore et dolore magna aliqua. Ut enim ad minim\nwww.example.com/test?id=1&name=abc\nveniam, quis nostrud exercitation ullamco lab\n\n&topic3\nhello";
s.split('&').forEach(function(elt) { console.log(elt.split('\n')[0], elt.split('\n').slice(1)); });
第一项是空的(这之后可以去掉,但也许有更干净的方法?)
如果
&位于一行的中间(而不是开头),则此代码不起作用我希望标题标题后面的文本位于一个字符串中(例如
Lorem ipsum dolor sit amet, consectetur adipiscing elit,\nsed do\neiusmod tempor incididunt ut),并且不为每个\n拆分
如何进行更干净的解析?
【问题讨论】:
标签: javascript parsing