javascript - 使用javascript收集html中的前3段

标签 javascript html string parsing

假设一篇文章生成了我的 markdown,其中有 1-N 个段落。今晚我的脑子有点炸了,我能想到的就是

var chunks = s.split('</p>');
if ( chunks.length > 3)
{
    s = chunks[1]+'</p>'+chunks[2]+'</p>'+chunks[3]+'</p>';
}

有没有更理智的方法将前三段收集成一个字符串? Markdown 处理器保证段落应该是合法的 HTML。但我确信一定有更聪明的正则表达式解决方案。此外,如果有其他类似 a 的内容,这也不能保证包含三个段落,但没关系。

最佳答案

是这样的吗?

var s= '<p>Paragraph 1</p><p>Paragraph <em>2</em></p><p>Paragraph 3</p><p>Paragraph 4</p><p>Paragraph 5</p>';

s= (s.split('</p>')
    .splice(0,3)
    .join('</p>') +
    '</p>'
   ).replace(/\<\/p> *\<\/p>/g,'</p>');

console.log(s);

关于javascript - 使用javascript收集html中的前3段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29688508/

相关文章:

javascript - 在服务器上渲染需要样式的 React 组件

javascript - 如何在 Angular 中设置靠近垫行的滚动位置?

javascript - 如何在不使用 HTML <form> 标签的情况下发送 AJAX 表单

Python 正则表达式 url 抓取

php - 用 preg_replace 替换 ereg_replace

javascript - 使用 Node JS 将数据从 Excel 导入 MySql

javascript - Ag-grid:修改过滤器窗口而不覆盖过滤器逻辑

javascript - 阅读单选按钮值 - Angular 2

c# - 正则表达式 *this close*,但仍然缺少一种符号

Javascript 用子字符串分割并将所述子字符串包含在生成的数组中