我需要使用 JavaScript 更改 RichEditor 和 TextEditor 模式,现在我需要将 Html 转换为实际上仍处于 Html 编辑器模式的文本,所以我只需要 p 标签,但其他 Html 可以被剥离。
最佳答案
正则表达式替换(全局,不区分大小写):
</?(?:(?!p\b)[^>])*>
用空字符串。
解释:
< # "<"
/? # 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
> # ">"
这是将正则表达式应用于 HTML 可以实际工作的少数情况之一。
有些人可能会反对并说在属性值中使用文字“<”实际上并未被禁止,因此可能会破坏上述正则表达式。他们是对的。
在这种情况下,正则表达式会中断,替换下划线部分:
<p class="foo" title="unusual < title">
---------
如果您的输入可以实现这样的事情,那么您可能必须使用更高级的工具来完成这项工作 - 解析器。
关于javascript - 除了 p 标签之外,从 JavaScript 中的文本中去除 Html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/828572/