JS正則表達式匹配<div><style>標簽

来源:http://www.cnblogs.com/xiaxianfei/archive/2016/03/14/5275601.html
-Advertisement-
Play Games

測試字元串: <style>v\:* {                 BEHAVIOR: url(#default#VML) } o\:* {                 BEHAVIOR: url(#default#VML) } w\:* {    


測試字元串:

<style>v\:* {                 BEHAVIOR: url(#default#VML) } o\:* {                 BEHAVIOR: url(#default#VML) } w\:* {                 BEHAVIOR: url(#default#VML) } .shape {                 BEHAVIOR: url(#default#VML) }

  </style> abcdefg   <style>@font-face {                 font-family: Wingdings; } @font-face {                 font-family: Wingdings; } @font-face {                 font-family: Calibri; } @font-face {                 font-family: Tahoma; } @page WordSection1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; } P.MsoNormal {                 FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman","serif" } LI.MsoNormal {                 FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman","serif" } DIV.MsoNormal {                 FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman","serif" } H1 {                 FONT-WEIGHT: bold; FONT-SIZE: 24pt; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; FONT-FAMILY: "Times New Roman","serif"; mso-style-priority: 9; mso-style-link: "Heading 1 Char"; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto } A:link {                 COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99 } SPAN.MsoHyperlink {                 COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99 } A:visited {                 COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99 } SPAN.MsoHyperlinkFollowed {                 COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99 } P {                 FONT-SIZE: 12pt; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; FONT-FAMILY: "Times New Roman","serif"; mso-style-priority: 99; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto } P.MsoAcetate {                 FONT-SIZE: 8pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; mso-style-priority: 99; mso-style-link: "Balloon Text Char" } LI.MsoAcetate {                 FONT-SIZE: 8pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; mso-style-priority: 99; mso-style-link: "Balloon Text Char" } DIV.MsoAcetate {                 FONT-SIZE: 8pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; mso-style-priority: 99; mso-style-link: "Balloon Text Char" } SPAN.Heading1Char {                 FONT-WEIGHT: bold; mso-style-priority: 9; mso-style-link: "Heading 1"; mso-style-name: "Heading 1 Char" } SPAN.EmailStyle19 {                 COLOR: #1f497d; FONT-FAMILY: "Arial","sans-serif"; mso-style-type: personal-reply } SPAN.BalloonTextChar {                 FONT-FAMILY: "Tahoma","sans-serif"; mso-style-priority: 99; mso-style-link: "Balloon Text"; mso-style-name: "Balloon Text Char" } .MsoChpDefault {                 FONT-SIZE: 10pt; mso-style-type: export-only } DIV.WordSection1 {                 page: WordSection1 } OL {                 MARGIN-BOTTOM: 0in } UL {                 MARGIN-BOTTOM: 0in }

  </style>

 

第一次嘗試:<style[^>/]*>(.*?)</style> 發現有換行的情況匹配不了,因為.是匹配除了換行符(/n)以外的任意一個字元。

第二次嘗試:<style(([\s\S])*?)</style> 成功

匹配<div>只需要把<style>換成<div>即可

1. 只替換匹配到的第一個<style>

var result= testData.replace(<style(([\s\S])*?)<\/style>, '');

2. 會替換所有testData中所有的<style>標簽

var result= testData.replace(/<style(([\s\S])*?)<\/style>/g, '');

g:代表可以進行全局匹配。
i:代表不區分大小寫匹配。
m:代表可以進行多行匹配。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有時候項目閑下來想休息的時候會跑跑艦c遠征,但計時比較麻煩。 所以每個現場都會寫那麼幾個工具。以前是vba的,這次寫了個HTML的,感覺還算易用就仍上來了。省得以後換現場還得再寫。 純粹是偷懶時做的,各種不符合規範請無視吧。
  • 之前寫的四則運算1.0版,現在繼續擴充 : 《四則運算》題目的功能,要求: 題目避免重覆;可以定製數量和列印方式; 可以控制下列參數 (1) 是否有乘除法 (2) 是否有括弧 (3) 數值範圍 (4) 加減有無負數 (5) 除法有無餘數 (6) 是否支持分數(真分數、假分數…) (7) 是否支持小數
  • jQuery設置checkbox全選在網上有各種文章介紹,但是為什麼在我們用他們的代碼的時候就沒有效果呢? 如果你的代碼一點錯誤都沒有,先不要急著懷疑人家代碼的正確性,也許只是人家跟你用的jQuery版本不同而已。 jQuery很多版本都會對一些小的功能做一些改進,比如checkbox的選中。 jQ
  • 我們知道Node.js框架下的Buffer對象能夠對二進位數據提供很好的支持,那麼獲取一個Buffer對象真實的位元組長度則是必須要用到的功能了。Node.js框架為開發人員提供了一個Buffer.byteLength()方法,下麵我們藉助一個官方文檔提供的常式向讀者演示一下該方法的使用過程。
  •     jQuery獲取Select選擇的Text和Value:語法解釋:1. $("#select_id").change(function(){//code...});   //為Select添加事件,當選擇其中一項時觸發2. var checkText=$("#select_id").find
  • 1、搜索時,文本框的內容一般去掉前後空格 (1)引用jquery時直接用$.trim() 方法即可 (2)無jquery庫時要用正則判斷 function trim(str){ //刪除左右兩端的空格      return str.replace(/(^\s*)|(\s*$)/g, ""); }
  • 前端自動化打包發佈已是一種常態,尤其在移動端,測試過程中靜態資源的緩存是件很頭疼的事情,有時候明明處理的bug測試還是存在,其實就是緩存惹的禍,手機不比pc瀏覽器,清理緩存還是有點麻煩的。所以自動化實現靜態資源的版本更新才是正道。 實際開發過程中,我們常用到的功能包括: 1、目標路徑的清除; 2、靜
  •   1.Goto Anything(快速搜索) |--Ctrl+p  輸入|--①文件名 |--②@+函數名 |--③:+數字 ->跳轉到相應行 |--④#+變數名 2.多行游標 |--|--Alt+F3整頁選中所選擇的詞 |--Ctrl+D選擇相同詞 |--Ctrl+K Ctrl+D選擇相同詞時,
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...