2017-06-13 46 views
0

此正則表達式處理空間在此正則表達式

var reg = <font[^>]*>(?:\s*<(\w+)>\s*<\/\1>\s*|\s*)<\/font> 

正在使用中替換(REG,「」),以除去空字體標籤。它刪除此

<font size="3"></font> 

好吧。

如何修改它,所以它會刪除

<font size="3"> </font> 

<font size="3">&nbsp;</font> 

<font size="3"> </font> 

我希望能夠找到所有空字體標籤與任意數量標籤之間的空格,並替換爲空字符串。

+0

可能的連環畫HTML文本從重複JavaScript](https://stackoverflow.com/questions/822452/strip-html-from-text-javascript) – OneNeptune

+1

@OneNeptune你甚至看看這個問題嗎? –

+0

你的字符串只是字體標籤還是有更多的HTML?無論哪種方式,我不會使用正則表達式來解析HTML。 – George

回答

0

如果你想要做的就是找到任何數量的標記之間的空間都是空的字體標籤,並用一個空字符串替換,可以簡化您正則表達式一點。如果你已經與當前的正則表達式表示,你也想在它趕上空標籤的一層,你可以做如下:

var reg = /<font[^>]*>(?:\s|&nbsp;|<(\w+)>(?:\s|&nbsp;)*<\/\1>)*<\/font>/gi 
 

 
var testStr = `<font size="3"></font> 
 
<font size="3"> </font> 
 
<font size="3">&nbsp;</font> 
 
<font size="3">&nbsp;&nbsp;&nbsp; </font> 
 
<font size="3"> </font> 
 
<font size="3"><something>&nbsp;&nbsp;</something></font>` 
 

 
console.log(testStr.replace(reg, ""))

0

試試這個

<font[^>]*>(?:\s*<(\w+)>\s*<\/\1>\s*|\s*|(&nbsp;)+)<\/font> 

按你的正則表達式。它已經捕獲空間。我剛剛添加了nbsp;

regex101鏈接:https://regex101.com/r/4Msyv1/2

+0

如果我們有多個' ',該怎麼辦? – SaiUnique

+0

我忘記了。謝謝你告訴我 –