目前我正在处理分成浮动列的文本以某种magazine-like
方式显示它。
我在上一个问题中问过如何split
将文本变成句子,它就像一个魅力:
sentences = text.replace(/\.\s+/g,'.|').replace(/\?\s/g,'?|').replace(/\!\s/g,'!|').split("|");
现在我想更进一步,把它分成单词。但我也有一些元素,不应该被分割。比如副标题。
一个示例文本是:
A wonderful serenity has taken possession of my entire soul. <strong>This is a subheadline</strong><br><br>I am alone, and feel the charm of existence in this spot.
我想要的结果如下所示:
Array [
"A",
"wonderful",
"serenity",
"has",
"taken",
"possession",
"of",
"my",
"entire",
"soul.",
"<strong>This is a subheadline</strong>",
"<br>",
"<br>",
"I",
"am",
"alone,",
"and",
"feel",
"the",
"charm",
"of",
"existence",
"in",
"this",
"spot."
]
当我在所有空格处拆分时,我确实得到了单词,但"<br>"
不会将其添加为新的数组条目。我也不想拆分副标题和标记。
我想这样做的原因是,我将一个又一个序列添加到 p-tag 中,当高度大于周围元素时,我删除最后添加的序列并创建一个新的浮动 p-tag。当我把它分成句子时,我看到,分手并不足以确保良好的阅读流程。
我试图实现的一个例子你可以在这里看到
如果您需要任何进一步的信息,我很乐意提供给您。
提前致谢,
托拜厄斯
编辑
该字符串将来可能包含更多的 html 标签。有没有办法不碰这些标签之间的任何东西?
编辑 2
我创建了一个 jsfiddle:http: //jsfiddle.net/m9r9q/1/
编辑 3
删除所有带有封装文本的 html 标记并用占位符替换它是一个好主意吗?然后将字符串拆分为单词并在到达占位符时添加未触及的 html-tags?提取所有 html 标签的正则表达式是什么?