[英]Strip Html from Text in JavaScript except p tags?
我需要用JavaScript更改RichEditor和TextEditor模式,現在我需要將Html轉換為實際仍處於Html編輯器模式的Text,所以我只需要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">
---------
如果您的輸入可以實現這一點,那么您可能必須使用更高級的工具來完成工作 - 解析器。
這應該有所幫助
var html = '<img src=""><p>content</p><span style="color: red">content</span>';
html.replace(/<(?!\s*\/?\s*p\b)[^>]*>/gi,'')
我的正則表達式的解釋:
更換所有部件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.