簡體   English   中英

正則表達式從HTML標記中包含的字符串中修剪空格

[英]Regexp to trim spaces from a string contained in HTML tag

我有這個HTML字符串(已驗證):

<div><img src="images/stories/2014/AAA.gif" alt="AAA" width="24" height="24" /> THE PRODUCTION OF: PLASTIC BOTTLES   <br /></div>

我必須提取<img>標簽附近的唯一標題,以修剪之前和之后的所有空格,而不是將其包裝在<h1>標簽中。 結果為:

<div><h1>THE PRODUCTION OF: PLASTIC BOTTLES</h1></div>

我已經完成了一個有效的正則表達式,但最終結果中還包含空格:

/<img\s*src="[^"]+"\s*alt="AAA"\s*width="24"\s*height="24"\s*\/>\s*([^<]+)\s*<br\s*\/>/

對於altwidthheight屬性的這些特征值,可以識別圖像。 謝謝。

實際上,有一種足夠簡單的方法完全不需要正則表達式。

'<div><h1>' . trim(strip_tags($original_html)) . '</h1></div>';

首先刪除所有標簽,然后修剪空白,最后將其包裝在所需的任何標簽中。

使您的匹配不貪婪應該可以解決問題: <img\\s*src="[^"]+"\\s*alt="AAA"\\s*width="24"\\s*height="24"\\s*\\/>\\s*([^<]+?)\\s*<br\\s*\\/>注意額外?旁邊[^<]+ )。更多可用的信息在這里

話雖如此,您實際上應該使用PHP DOM Parser之類的東西來處理HTML。

我認為更好的解決方案是使用jQuery。具體來說,方法.text()

<div id='mydiv'><img src="images/stories/2014/AAA.gif" alt="AAA" width="24" height="24" /> THE PRODUCTION OF: PLASTIC BOTTLES   <br /></div>`
 <script>var text = $('#mydiv').text();$('#mydiv').html('<h1>' + text + '</h1>');</script>

結果是:

 <div><h1>THE PRODUCTION OF: PLASTIC BOTTLES</h1></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM