【发布时间】:2015-05-22 12:40:00
【问题描述】:
以下代码拆分data,应用正则表达式,并再次加入字符串(有一部分删除了单词之间的新行,因为我希望段落在单个块/行中输出):
输入:
Lorem ipsum dolor sit amet
Ipsum dolor sit amet, consetetur eirmod tempor invidunt ut labore
代码:
data = data.split('\n\n')
for (var i = 0; i < data.length; ++i) {
data[i] = '<p>' + data[i].replace(/\n(?=\w+)/g, ' ') + '</p>'
}
data = data.join('\n\n')
我认为输入是:
<p>Lorem ipsum dolor sit amet</p>
<p>Ipsum dolor sit amet, consetetur eirmod tempor invidunt ut labore</p>
但不是,而是:
<p>Lorem ipsum dolor sit amet</p>
<p>Ipsum dolor sit amet, consetetur eirmod tempor invidunt ut labore
</p>
可能是什么原因?
【问题讨论】:
-
这个问题是不是这个:stackoverflow.com/questions/29124091/…?
-
@ʰᵈˑ 不,我问的是完全不同的事情。
-
还有什么问题,HTML 中的换行符不重要?
-
同样,无法重现-> jsfiddle.net/4o5w2oj6
-
这是因为您的真实字符串末尾有一个换行符(不是您帖子中的那个),所以由于它后面没有单词字符,因此不会替换换行符。您可以像这样更改前瞻:
(?=\w|$)。顺便说一句,在这里添加量词(?=\w+)是没有用的,(?=\w)也会这样做。
标签: javascript html regex