欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識(shí)庫 > Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽

Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽

熱門標(biāo)簽:惠安地圖標(biāo)注 地圖標(biāo)注店鋪地圖標(biāo)注酒店 淄博市張店區(qū)地圖標(biāo)注 哈爾濱公司外呼系統(tǒng)代理 浙江營銷外呼系統(tǒng)有哪些 山東外呼系統(tǒng)聯(lián)系方式 自己做的電銷機(jī)器人 遼寧秒客來電話機(jī)器人 上海銷售電銷機(jī)器人軟件

js正則表達(dá)式替換HTML標(biāo)簽以及空格(nbsp;)

js代碼:

function filter(text) {
  var reg = /[^>]+>/g;//1、全局匹配g肯定忘記寫,2、>標(biāo)簽中不能包含標(biāo)簽實(shí)現(xiàn)過濾HTML標(biāo)簽
  text = text.replace(reg, '');//替換HTML標(biāo)簽
  text = text.replace(/nbsp;/ig, '');//替換HTML空格
  return text;
  };

在angularJS中使用過濾器過濾富文本數(shù)據(jù)

app.filter('qxhtml', function () {
  return function (text) {
   var reg = /[^>]+>/g;
   text = text.replace(reg, '');
   text = text.replace(/nbsp;/ig, '');
   if (text.length > 50) {
    text = text.substring(0, 50) + "...";
   }
   return text;
  };
 });

使用過濾器

div class="desc">
{{y.Description| qxhtml}}
/div>

下面是其他網(wǎng)友的補(bǔ)充

js如何使用正則表達(dá)式實(shí)現(xiàn)過濾HTML標(biāo)簽?(/[^>]+>/g)

一、總結(jié)(點(diǎn)擊顯示或隱藏總結(jié)內(nèi)容)

js進(jìn)階正則表達(dá)式實(shí)現(xiàn)過濾HTML標(biāo)簽(>標(biāo)簽中不能包含標(biāo)簽實(shí)現(xiàn)過濾HTML標(biāo)簽:/[^>]+>/g)

var reg=/[^>]+>/g

1、全局匹配g肯定不能忘記寫
2、>標(biāo)簽中不能包含標(biāo)簽實(shí)現(xiàn)過濾HTML標(biāo)簽

二、js進(jìn)階正則表達(dá)式實(shí)現(xiàn)過濾HTML標(biāo)簽

實(shí)例描述:將一段帶有HTML標(biāo)簽的文本的HTML標(biāo)簽過濾掉,轉(zhuǎn)化為純文本輸出

三、代碼

!DOCTYPE html>
html lang="en">
head>
 meta charset="UTF-8">
 title>過濾HTML標(biāo)簽/title>
 style type="text/css">
  textarea{
   width: 60%;
   font-size: 18px;
   background: rgba(100,200,50,0.3);
  }
  #text2{
   background:rgba(200,100,50,0.3); 
  }
 /style>
/head>
body>
 textarea id="text1" rows="10" cols="50">/textarea>br>br>
 input type="button" id="btn1" value="過濾HTML標(biāo)簽">br>br>
 textarea id="text2" rows="10" cols="50">/textarea>
 script type="text/javascript">
  var btn1=document.getElementById('btn1')
  var text1=document.getElementById('text1')
  var text2=document.getElementById('text2')
  btn1.onclick=function (){
   //var reg=/.+>/g
   var reg=/[^>]+>/g //1、全局匹配g肯定忘記寫 2、>標(biāo)簽中不能包含標(biāo)簽實(shí)現(xiàn)過濾HTML標(biāo)簽
   text2.value=text1.value.replace(reg,'')
  }
 /script>
/body>
/html>

js 正則表達(dá)式去除html字符中所有的標(biāo)簽(img標(biāo)簽除外)

廢話不多說,直接上代碼:

description.replace(/(?!img).*?>/g, "");

如果保留img,p標(biāo)簽,則為:

description.replace(/(?!img|p|\/p).*?>/g, "");

在js中/需要用轉(zhuǎn)義字符。

通用 HTML 標(biāo)簽區(qū)配正則

最近看網(wǎng)站日志,發(fā)現(xiàn)有人在博客上轉(zhuǎn)了我不知道幾年前寫的一個(gè)匹配 HTML 標(biāo)簽的正則,剛好最近也在做一些相關(guān)的事情,頓時(shí)來了興趣。就拿回來改改,成了下面這樣,可能會(huì)有一些 case 遺漏,歡迎修改,已知在內(nèi)嵌 script> 復(fù)雜內(nèi)容的處理能力較弱,不過對純 HTML 來說已經(jīng)夠用,拿來做一些分析工具還是不錯(cuò)滴。

script type="text/javascript"> 
var str = "br />br/>br>br >中文>div>div id=a>無憂腳本img src=\"http://bbs.51js.com/images/default/logo.gif\" width=\"191\" height='75' border=0 onload=\"if(testver>0  testver500)alert('test');\" \n onerror='alert(\"test\")' />img src=xxx alt=\"hello\njust a test!\">/div>hr >script type=\"test/javascript\" defer>alert(\"just a test!\");\/script>Hello.input type=text value=\"無憂腳本\">br / >img \"\" >/ >!-- 注釋 --> ucren>!-- 再注>釋 -->img alt=' title='\"' />b>123/b>123,34>1lt;bgt;img src=\"http://bbs.51js.com/images/old51js/logo.gif\" />!-- 三注釋>>> -->"; 
var reg = /(?:(?:\/?[A-Za-z]\w*\b(?:[=\s](['"]?)[\s\S]*?\1)*)|(?:!--[\s\S]*?--))\/?>/g; 
alert(str.match(reg).join("\n----------------------------------------------------\n")); 
/script> 

在線測試


[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

有朋友留言說Java直接使用的話會(huì)報(bào)錯(cuò)。我后來查了一下,發(fā)現(xiàn)Java正則引擎支持的特性相對比較少。在1.6版本中不能使用命名組(貌似1.7的時(shí)候開始支持了),否則會(huì)報(bào)以下錯(cuò)誤,更別說平衡組了。因此感覺要實(shí)現(xiàn)無限級的嵌套匹配不大現(xiàn)實(shí)。

java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index XX

在網(wǎng)上搜了好久也沒找到完美的解決方案。不過,我們可以實(shí)現(xiàn)有限級Html嵌套標(biāo)簽匹配。思路相對于無限級來說就簡單了好多,不需要那么多高級的特性。
示例:

div id='container'>BR> div style='background-color:gray;' id='footer'>BR> a id='gotop' href='#' onclick='MGJS.goTop();return false;'>Top/a>BR> a id='powered' >WordPress/a>BR> div id='copyright'>BR> Copyright copy; 2009 簡單生活 —— Kevin Yang的博客BR> /div>BR> div id='themeinfo'>BR> Theme by a >mg12/a>. Valid a >XHTML 1.1/a>BR> and a >CSS 3/a>.BR> /div>BR> /div>BR>/div>

在上面這個(gè)示例中,我們打算匹配id為footer的這個(gè)嵌套div,而且假設(shè)我們預(yù)先知道footer這個(gè)div里面最多只會(huì)嵌套一級div。更多級的情況我們一會(huì)兒再講。
footer的開始和結(jié)束標(biāo)簽匹配很簡單:

div [^>]*id='footer'[^>]*>......(這里的省略號是一會(huì)要填寫的)/div>

夾在開始和結(jié)束標(biāo)簽之間的內(nèi)容無非有兩種情況:
內(nèi)容A: div標(biāo)簽,并且此div內(nèi)無嵌套div
內(nèi)容B: 任意其他內(nèi)容
然后就是這兩種內(nèi)容的不斷重復(fù)而已。正則表示如下:

(div[^>]*>.*?/div>|.)*?

注意最后面的問號必須要加上,否則由于正則的貪婪匹配特性,footer的閉合標(biāo)簽會(huì)匹配失誤。
OK了,匹配最多嵌套一級div的正則表達(dá)式如下:

div [^>]*id='footer'[^>]*>(div[^>]*>.*?/div>|.)*?/div>

那么如果footer標(biāo)簽里頭最多會(huì)嵌套兩級div的話怎么辦呢?
其實(shí)也不難,我們只需要把上面的“內(nèi)容A”部分中的點(diǎn)號稍作替換即可。修改如下:

div [^>]*id='footer'[^>]*>(div[^>]*>(div[^>]*>.*?/div>|.)*?/div>|.)*?/div>

到這里你可能就知道,如果要匹配最多嵌套三級div的話,正則應(yīng)該怎么寫了:

div [^>]*id='footer'[^>]*>(div[^>]*>(div[^>]*>(div[^>]*>.*?/div>|.)*?/div>|.)*?/div>|.)*?/div>

所以實(shí)際上,只要你的html結(jié)構(gòu)不是特別復(fù)雜的話,也就是說嵌套不會(huì)很深的話,那么你完全可以使用這種方式來匹配嵌套html標(biāo)簽。

這個(gè)正則在Java和Javascript中都可以使用,因?yàn)樗鼪]有用到任何高級特性。

接著補(bǔ)充

查找所有的TD區(qū)域(最短):

td\s*.*>\s*.*\/td>

查找所有的TR:

tr.*(?=>)(.|\n)*?/tr>

查找所有的TD:

td.*(?=>)(.|\n)*?/td>

正則表達(dá)式匹配Html標(biāo)簽

例1.
以下是一段Html代碼

table boder="0" width="11%" class="somestory">
tr>
td width="100%">
p align="center">其它內(nèi)容.../p>
/td>
/tr>
/table>
table border="0" width="11%" class="headline">
tr>
td width="100%">
p align="center">典經(jīng)HTML正則表達(dá)式!/p>
/td>
/tr>
/table>
table boder="0" width="11%" class="someotherstory">
tr>
td width="100%">
p align="center">其它內(nèi)容.../p>
/td>
/tr>
/table>

正則表過式:table.*(?=headline)
說明:正則表達(dá)式匹配表格開始標(biāo)記,能夠返回開始標(biāo)記直至 “headline”之間的所有內(nèi)容(換行除外);
就是以上紅色標(biāo)示出來的部分。
原理:
table                           //匹配的開始部分
.*                                   //除換行外的所有字符
(?=headline)               //零寬度正預(yù)測先行斷言,匹配以 headline 結(jié)尾的單詞的前面部分(除了 headline 以外的部分)

例2.

table boder="0" width="11%" class="somestory">
tr>
td width="100%">
p align="center">其它內(nèi)容.../p>
/td>
/tr>
/table>
table border="0" width="11%" class="headline">
tr>
td width="100%">
p align="center">典經(jīng)HTML正則表達(dá)式!/p>
/td>
/tr>
/table>
table boder="0" width="11%" class="someotherstory">
tr>
td width="100%">
p align="center">其它內(nèi)容.../p>
/td>
/tr>
/table>

正則表達(dá)式:table.*(?=headline)(.|\n)*?/table>
說明:匹配最長的以 table border="0" width="11%" class=" 開始, 以/table>結(jié)束的字符串,就是以上以紅色標(biāo)示出來的部分。

原理:

table.*(?=headline)                  //參見記錄1的說明
(.|\n)                                             //指示在兩個(gè)或多個(gè)項(xiàng)之間進(jìn)行選擇,(zlf)ood 與 "zood" 或 "food" 匹配
*?                                                //應(yīng)與上一個(gè) (.|\n) 聯(lián)合起來看,  .*? 就意味著匹配任意數(shù)量的重復(fù),但是在能使整個(gè)匹配成功的前提下使用最少的重復(fù),懶惰模式。
/table>                                     //匹配的結(jié)束標(biāo)記

注意:“(.|\n)”后面的 "*" 匹配 0 個(gè)到多個(gè)任意字符,而“?”使得“*”匹配范圍最小化,即在找到表達(dá)式的下一部分之前匹配盡可能少的字符。/table> 是表格的結(jié)束標(biāo)記.

 例3.

tableboder="0" width="11%" class="somestory">
tr>
td width="100%">
p align="center">其它內(nèi)容.../p>
/td>
/tr>
/table>
tableborder="0" width="11%" class="headline">
tr>
td width="100%">
p align="center">典經(jīng)HTML正則表達(dá)式!/p>
/td>
/tr>
/table>
tableboder="0" width="11%" class="someotherstory">
tr>
td width="100%">
p align="center">其它內(nèi)容.../p>
/td>
/tr>
/table>

正則表達(dá)式:(?tag>[^\s>]+)[^>]*>(.|\n)*?/\ktag>>
說明:匹配成對的HTML標(biāo)簽,它將會(huì)匹配Html標(biāo)簽及標(biāo)簽中的內(nèi)容,本例分三段匹配三個(gè)table>標(biāo)簽及/table>中的內(nèi)容。
原理:
                                    //html標(biāo)簽中的
(?tag>[^\s>]+)            // (?name>), 分組命名的方式,[^\s>]:非任何空白字符及“>”至少匹配一次
[^>]*>                            //非“>”匹配 0 到 n 次,及html的標(biāo)簽“>”.
(.|\n)                              //在兩個(gè)或多個(gè)項(xiàng)之間時(shí)行選擇,(zlf)ood 與 "zood" 或 "food" 匹配.
*?                                  // 應(yīng)與上一個(gè)(.|\n)聯(lián)合起來看, .*? 就意味著匹配任意數(shù)量的重復(fù),但是在能使整個(gè)匹配成功的前提下使用最少的重復(fù),懶惰模式。
/\ktag>>                    //反向引用命名的組,語法為 \kname>, 及html 標(biāo)簽“>”

注意:“(.|\n)”后面的 "*" 匹配 0 個(gè)到多個(gè)任意字符,而“?”使得“*”匹配范圍最小化,即在找到表達(dá)式的下一部分之前匹配盡可能少的字符。

本例使用了分組命名及反向引用命名組的概念。

正則表達(dá)匹配中文

匹配中文字符的正則表達(dá)式:   [\u4e00-\u9fa5]
1、先用js把中文轉(zhuǎn)換16進(jìn)制碼:d.innerHTML = escape("你們"); 得到 %u4F60%u4EEC, 即 \u4F60\u4EEC
2、var arr = str.match(/\u4F60\u4EEC/g);
3、\u4F60為單個(gè)漢字“你”.
4、以上測試程序?yàn)閖avascript

到此這篇關(guān)于Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽的文章就介紹到這了,更多相關(guān)正則表達(dá)式匹配嵌套Html標(biāo)簽 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • java正則表達(dá)式四種常用的處理方式(匹配、分割、替代、獲取)
  • JAVA中正則表達(dá)式匹配,替換,查找,切割的方法
  • Java使用正則表達(dá)式(regex)匹配中文實(shí)例代碼
  • Java基于正則表達(dá)式實(shí)現(xiàn)查找匹配的文本功能【經(jīng)典實(shí)例】
  • Java基于正則表達(dá)式實(shí)現(xiàn)的替換匹配文本功能【經(jīng)典實(shí)例】
  • Java正則表達(dá)式匹配電話格式
  • java正則表達(dá)式匹配網(wǎng)頁所有網(wǎng)址和鏈接文字的示例
  • Java正則表達(dá)式(匹配、切割、替換、獲取)等方法
  • Java使用正則表達(dá)式匹配獲取鏈接地址的方法示例
  • Java正則表達(dá)式如何匹配特定html標(biāo)簽內(nèi)的內(nèi)容

標(biāo)簽:泰州 宣城 綿陽 重慶 長沙 無錫 銅川 西安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽》,本文關(guān)鍵詞  Java,下,使用,正則,表達(dá)式,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽》相關(guān)的同類信息!
  • 本頁收集關(guān)于Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日本精品免费观看高清观看| 亚洲国产精品久久艾草纯爱| 国内精品国产三级国产a久久| 800av在线播放| 欧美人动与zoxxxx乱| 亚洲综合精品自拍| 欧美性猛交乱大交| 欧美午夜一区二区三区 | 国产不卡高清在线观看视频| 亚洲精品国产精品国自产网站| 日韩精品一区二区三区中文精品| 日韩精品电影一区亚洲| 国产又黄又粗又猛又爽的视频| 欧美日韩不卡在线| 日日夜夜免费精品视频| 国产偷人妻精品一区| 欧美va天堂va视频va在线| 九色综合国产一区二区三区| 男人舔女人下部高潮全视频 | 国产主播一区二区三区| 神马久久久久久久久久久| 国产午夜亚洲精品羞羞网站| 国产成人免费视频网站高清观看视频 | 国产高清亚洲一区| 国产午夜精品理论片在线| 国产精品美女久久久久aⅴ| 成人深夜视频在线观看| 日本韩国一区二区三区视频| 一区二区在线观看免费| 91精品啪在线观看国产| 日韩久久精品一区| 国产精品综合二区| 色综合天天综合| 亚洲伊人色欲综合网| 久久国产精品无码一级毛片| 久久一区二区三区四区| 日韩精品一区二区在线观看| 亚洲三级视频在线观看| 91国产精品成人| 亚洲欧美日韩久久| 老熟女高潮一区二区三区| 3atv一区二区三区| 激情文学综合插| 懂色av懂色av粉嫩av| 一区二区三区四区在线播放| 色哟哟无码精品一区二区三区| 日韩欧美国产系列| 国产黄色成人av| 在线观看中文字幕不卡| 视频一区国产视频| 懂色av蜜桃av| 亚洲人xxxx| 国产熟女高潮一区二区三区 | 欧美国产欧美亚州国产日韩mv天天看完整 | 黄色小说综合网站| 91久久久免费一区二区| 日韩 欧美一区二区三区| 天天爽天天爽天天爽| 一区二区三区国产精品| 国产美女免费无遮挡| 自拍偷自拍亚洲精品播放| 中文字幕a在线观看| 中文字幕欧美区| 亚洲精品国产成人av在线| 亚洲国产成人在线| 中文字幕天堂av| 国产精品每日更新在线播放网址| xxxxxx黄色| 国产精品你懂的在线欣赏| 日本五十肥熟交尾| 综合在线观看色| 黄色aaa视频| 亚洲夂夂婷婷色拍ww47| 日本猛少妇色xxxxx免费网站| 亚洲综合久久久久| 女人18毛片毛片毛片毛片区二| 亚洲aaa精品| 色综合久久精品| 黑人巨大精品欧美黑白配亚洲| 欧美日韩一区二区在线观看视频| 激情成人综合网| 91麻豆精品国产91久久久更新时间| 风间由美一区二区av101| 日韩一区二区三区观看| 91美女精品福利| 亚洲国产激情av| 这里只有久久精品| 五月激情六月综合| 91搞黄在线观看| 国产不卡一区视频| 欧美tk丨vk视频| 日韩精品人妻中文字幕有码| 亚洲免费观看高清在线观看| 精品在线观看一区| 久久机这里只有精品| 欧美精品18+| 久久久久亚洲av片无码v| 国产精品少妇自拍| 久久久久久久久久久久| 午夜视频在线观看一区| 欧美性生交片4| 成人免费毛片app| 久久久电影一区二区三区| 国产激情在线免费观看| 首页国产欧美日韩丝袜| 欧美三级午夜理伦三级中视频| 成人avav影音| 国产精品久久久久婷婷| 制服丨自拍丨欧美丨动漫丨| 极品少妇xxxx偷拍精品少妇| 精品国内二区三区| 中文字幕5566| 日韩av中文字幕一区二区 | 69av一区二区三区| 欧美体内she精高潮| 亚洲三级电影全部在线观看高清| 久久精品一区二区三区四区五区| 国产尤物一区二区在线| 久久午夜电影网| 无码少妇一区二区| 狠狠色丁香婷综合久久| 精品福利在线导航| 公肉吊粗大爽色翁浪妇视频| 精品一区二区三区不卡| 精品久久久久久久久久久久久久久 | 日韩欧美激情四射| 免费看污黄网站在线观看| 毛片不卡一区二区| 精品第一国产综合精品aⅴ| 中文字幕人妻一区二区| 美女尤物国产一区| 久久久噜噜噜久久中文字幕色伊伊| 手机免费看av| 国产制服丝袜一区| 中文字幕精品一区二区精品绿巨人 | 日韩欧美国产电影| 在线免费观看黄色小视频| 久久精品国产网站| 久久嫩草精品久久久精品一| 成人做爰69片免网站| 国产精品亚洲人在线观看| 久久精品无码一区二区三区| 国产小视频你懂的| 高清不卡一二三区| 亚洲色图一区二区三区| 欧美视频一二三区| 喷水视频在线观看| 理论片日本一区| 国产区在线观看成人精品| www.av免费| 97精品久久久午夜一区二区三区 | 亚洲不卡的av| 国产91精品一区二区麻豆亚洲| 中文字幕一区二区日韩精品绯色| 在线观看一区不卡| 中文字幕一区二区人妻电影丶| 麻豆91小视频| 国产精品久久午夜夜伦鲁鲁| 日本道免费精品一区二区三区| 日本不卡视频一区| 国产在线乱码一区二区三区| 综合网在线视频| 91精品一区二区三区久久久久久| 在线免费观看日韩av| 成人性生交大片免费| 亚洲高清免费一级二级三级| 精品欧美久久久| 国产大片免费看| 中文字幕第九页| 亚洲av无一区二区三区| 国产精品久久久久久久av| 国产成人av电影在线| 亚洲一区二区三区自拍| 日韩你懂的在线播放| 91麻豆精品成人一区二区| 三上悠亚 电影| 久久国产人妖系列| 亚洲天堂网中文字| 日韩一区二区三区在线观看 | 精品人伦一区二区三电影| 不卡视频免费播放| 日韩国产高清影视| 国产精品久久久久精k8| 欧美美女网站色| 女教师淫辱の教室蜜臀av软件| 亚洲成人激情小说| 韩国三级中文字幕hd久久精品| 一区二区三区免费| 久久久久久久久久电影| 欧美日韩色综合| 国产精品视频看看| 日本一区二区在线免费观看| 成人精品视频一区| 久久99国产精品久久99| 一区二区视频在线看| 国产亚洲人成网站| 欧美精品成人一区二区三区四区| 男人av资源站| 精品无码人妻一区| 国产又黄又嫩又滑又白|