【问题标题】:javascript regular expressions removing extra p tagsjavascript正则表达式删除额外的p标签
【发布时间】:2018-02-08 18:28:18
【问题描述】:

当我从 Microsoft Word 复制并将其从剪贴板粘贴到 contenteditable div 标签时,会粘贴额外的标记代码。 这是一个测试链接: https://codepen.io/anon/pen/hFAdk

脚本不会删除多余的段落标签。这是我要添加的正则表达式,但它不起作用。

<p[^>]*>[\s|&nbsp;]*<\/p>

输入

Mauris adipiscing lacus

油菜花

Pellentesque felis quam

输出

Mauris adipiscing lacus

油菜花

Pellentesque felis quam

**期望的输出**:

Mauris adipiscing lacus

油菜花

Pellentesque felis quam

有人知道如何删除那些多余的 p 标签吗? :(

提前感谢您的帮助。

【问题讨论】:

  • 你想删除所有&lt;p&gt;&lt;/p&gt;使用javascript正则表达式,对吧?
  • 嘿蒂姆,只是想删除空标签,我尝试添加正则表达式但不起作用

    ]*>[\s| ]*

    在这里是一个测试链接:codepen.io/anon/pen/hFAdk
  • 啊.. &lt;p[^&gt;]*&gt;[\s|&amp;nbsp;]*&lt;\/p&gt; 不能在 JS 中工作,因为它应该是 /&lt;p[^&gt;]*&gt;[\s|&amp;nbsp;]*&lt;\/p&gt;/gi

标签: javascript regex


【解决方案1】:

试试这个:

/<(p)[^>]*?>(\s|(&nbsp;))*?<\/\1>/gi

演示:https://regex101.com/r/uKrux8/1

【讨论】:

  • 如何以及在何处添加到此脚本? codepen.io/anon/pen/hFAdk
  • 早安蒂姆,您的正则表达式和我的正则表达式本身工作正常,但是当我添加到我的代码中时,什么也不做。 :( 我添加了这行代码,但它可能与代码中的其他内容冲突。 content = content.replace(/]*?>(\s|( ))*?/gi, " "); codepen.io/anon/pen/hFAdk 问题是放在一起:(
  • 嘿,蒂姆,我的朋友罗伯特发现了问题,它是正则表达式 booden.net/ContentCleaner.aspx ][^>]*>\s* ]+> 感谢您的帮助:)