javascript - 拆分 html,包括使用正则表达式拆分 ul 标签

标签 javascript jquery regex

我正在使用 \b(\w+(?![^<>]*>))\b 按单词分割 HTML block

var html = splitParagraph.html();
var splitHtml = html.split(/\b(\w+(?![^<>]*>))\b/);

我正在执行此操作的 HTML 看起来如下所示:

                <h2>Lorem</h2><br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor<br>
<br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor<br>
<br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor<br>
<br>
[Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor]<br>
<br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor:<br>
<ul><br>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor</li><br>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor</li><br>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor</li><br>
</ul><br>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor<br>
<br>

您可以在这里看到它的工作情况:http://www.regexpal.com/?fam=95537

但是,我想做的是使正则表达式还包含 ul分割时有标签,因此,在数组中,它可能看起来像 ["lorem", " ", "ipsum", "<ul><li>lorem</li><li>ipsum</li><li>blah</li></ul>"] (请注意,ul 是它自己的项目)。因此,它不会分割 ul 内的任何内容。 ,但继续讨论 ul 之后的内容。

我知道我可以使用\s*<ul[^>]*>[\S\s]*?<\/ul>\s*匹配 ul ,(感谢 the ref )但我不知道如何将这两者结合起来。

最佳答案

你可以尝试/\<ul\>[\w\W]+\<\/ul\>|\b(\w+(?![^<>]*>))\b/g ,但我确信有一个更小的解决方案,因为这个解决方案仅与您的原始解决方案以及 <ul> 之间的任何内容相匹配和</ul>标签。

我建议不要使用这种结构,因为它很难维护或扩展。您将如何处理生成的数组?也许有更好的选择。

编辑:如图所示,您只需使用 | 连接两个正则表达式即可

关于javascript - 拆分 html,包括使用正则表达式拆分 ul 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38979545/

相关文章:

javascript - 需要有关更新 D3.js 词云的帮助

javascript - 传单:layer.getLatLng 不适用于 .eachLayer 函数

javascript - 如何防止 HTML 输入字段中的按键 UP 和 DOWN 行为?

javascript - 当页面加载时,是什么触发我的预加载器 gif 在页面上显示?

javascript - 如何将 Javascript 函数绑定(bind)到动态加载的 HTML

javascript - 如何使用 jQuery 部分更新 DOM

java - 正则表达式检查长度

javascript - 使用JS防止网站刷新

css - 正则表达式替换路径

Python 正则表达式 : splitting on pattern match that is an empty string