你的位置:首页 > Java教程

[Java教程]JS正则表达式匹配divstyle标签

测试字符串:

<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:代表可以进行多行匹配。