除了p标签之外,从JavaScript中删除文本中的Html?

2 javascript

我需要用JavaScript更改RichEditor和TextEditor模式,现在我需要将Html转换为实际仍处于Html编辑器模式的Text,所以我只需要p标签,但其他Html可以被剥离.

Tom*_*lak 10

正则表达式替换(全局,不区分大小写):

</?(?:(?!p\b)[^>])*>
Run Code Online (Sandbox Code Playgroud)

用空字符串.

说明:

<          # "<"
/?         # optional "/" 
(?:        # non-capture group
  (?!      #   negative look-ahead: a position not followed by...
    p\b    #     "p" and a word bounday
  )        #   end lock-ahead
  [^>]*    #   any char but ">", as often as possible
)          # end non-capture group
>          # ">"
Run Code Online (Sandbox Code Playgroud)

这是将HTML正则表达式实际应用的少数情况之一.

有些人可能反对并说,在属性值中使用文字"<"实际上并未被禁止,因此可能会破坏上述正则表达式.他们是对的.

这种情况下,正则表达式会破坏,取代带下划线的部分:

<p class="foo" title="unusual < title">
                              ---------
Run Code Online (Sandbox Code Playgroud)

如果您的输入可以实现这一点,那么您可能必须使用更高级的工具来完成工作 - 解析器.