㈠ 如何使用js正則 過濾某一個html標簽下所有的標簽跟樣式呢只保留出純文本
js過濾HTML標簽的方法。分享給大家供大家參考,具體如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>無標題文檔</title>
<script>
window.onload=function()
{
varoTxt1=document.getElementById('txt1');
varoTxt2=document.getElementById('txt2');
varoBtn=document.getElementById('btn');
oBtn.onclick=function()
{
varreg=/<[^<>]+>/g;
oTxt2.value=oTxt1.value.replace(reg,'');
};
};
</script>
</head>
<body>
<textareaid="txt1"cols="40"rows="10"></textarea><br/>
<inputtype="button"value="過濾"id="btn"/><br/>
<textareaid="txt2"cols="40"rows="10"></textarea>
</body>
</html>
㈡ 求一個js正則表達式:替換html內容中除了<img>標簽外的特定字元為另外一個字元.
<!DOCTYPEHTML>
<html>
<head>
<title>PageTitle</title>
<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"/>
<script>
onload=function(){
varhtml=document.body.innerHTML;
varreg=/(<img(?:(?!id|>).)*)(id[="'s]+)?([^"'s]*)(["']?)([^>]*>)/gi;
varidx=0;
html=html.replace(reg,function($0,$1,$2,$3,$4,$5){
idx++;
if(typeof$2=="undefined"){
return$1+"id='"+idx+"'"+$3+$4+$5;
}
return$1+$2+idx+$4+$5;
});
document.body.innerHTML=html;
}
</script>
</head>
<body>
<imgsrc="acb.jpg"id="imgx"/>
<ul>
<li><imgsrc="sdf.png"/></li>
</ul>
</body>
</html>
㈢ JS 如何用正則替換指定HTML標簽
vars="<span>a</span>....<span>z</span>";
s=s.replace(/<span>(.*?)</span>/g,"<inputtype='text'value='$1'/>")
㈣ JS正則過濾指定的HTML標簽
java"><div>.*</div>//匹配外第一層
//如dsd<span>sd<div><a><div>ghghghgh</div></a></div></span>
//匹配<div><a><div>ghghghgh</div></a></div>
<div>((?!<div>)(?!</div>).)*</div>//匹配最內層
//如dsd<span>sd<div><a><div>ghghghgh</div></a></div></span>
//匹配<div>ghghghgh</div>
㈤ js 正則表達式去除指定的HTML標簽
可以這么寫:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""
<htmlxmlns="
<head>
<title>匹配正則表達式</title>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<scripttype="text/javascript">
functiont1(){
varcont=document.getElementById('cont');
varcv=cont.value;
varreg=/<a[s]+[^>]+>([^<>]+)</a>/gi;//正則表達式
alert(cv.replace(reg,''));
}
</script>
<styletype="text/css">
textarea{
width:400px;
height:200px;
}
</style>
</head>
<body>
<p>
<textareaid="cont"></textarea>
</p>
<p><inputtype="button"value="把鏈接換成空鏈接"onclick="t1();"/></p>
</body>
</html>
㈥ 正則表達式匹配html標簽,獲取標簽內容
假設我們要獲取下面html標簽中的內容:
第一段是獲取 <p>慧慎</p> 標簽內部的數據,第二個是獲取 <p><span></span></p> 標簽中的數據,其中span標簽中有style屬性值。
使用過正則表達式的同學肯定知道前纖敬,上面兩種情況其實都是一種情況,我們要獲取的是 尖括弧括起來的一對標簽 中間的數據,起始標簽形如<x>,結束標簽形如</x>,這里的x表示的html標簽。
此外,我們還需要考慮起始標簽中包含style的數據,另外特殊的 <br/> 標簽,對實際獲取數據無意義,也需要過濾掉。
通過上面的分析,我們可以如下正則表達式:
在使用正則表達式處理之前,我們先對數據進行豎枯預處理,比如style和
標簽:
針對多個標簽嵌套的情況進行處理,比如 <p><span style="white-space: normal;">王者榮耀</span></p> ,在經過預處理和正則匹配的後結果是 <span>王者榮耀 ,需要手工移除掉前面的起始標簽,對應的方法如下:
測試方法如下:
output:
㈦ 如何用js和C#的正則表達式獲取具備指定屬性的任意html標簽
給你個例子,你自己看看吧。
平衡組/遞歸匹配
如何把xx <aa <bbb> <bbb> aa> yy這樣的字元串里,最長的配對的尖括弧內的內容捕獲出來?
這里需要用到以下的語法構造:
(?'group') 把捕獲的內容命名為group,並壓入堆棧(Stack)
(?'-group') 從堆棧上彈出最後壓入堆棧的名為group的捕獲內容,如果堆棧本來為空,則本分組的匹配失敗
(?(group)yes|no) 如果堆棧上存在以名為group的捕獲內容的話,繼續匹配yes部分的表達式,否則繼續匹配no部分
(?!) 零寬負向先行斷言,由於沒有後綴表達式,試圖匹配總是失敗
我們需要做的是每碰到了左括弧,就在壓入一個"Open",每碰到一個右括弧,就彈出一個,到了最後就看看堆棧是否為空--如果不為空那就證明左括弧比右括弧多,
那匹配就應該失敗。正則表達式引擎會進行回溯(放棄最前面或最後面的一些字元),盡量使整個表達式得到匹配。
平衡組一個匹配嵌套的<div>標簽:
<div[^>]*>[^<>]*(((?'open'<div[^>]*)[^<>]*)+(?'-open'</div>)[^<>]*)+)*(?(open)(?!))</div>
㈧ 正則表達式匹配HTML標簽之間的內容
(?<=>)[^<>]+(?=<)
假如html標簽裡面有一句:
String a = "<style type="text/css"> div " +
"{ margin: 0; padding: 0; outline: 0; }</style>";
我如何把這一句取出來呢,包括標簽。
用正則表達式:<style([\s\S]*)</style>
正則表達式匹配HTML標簽
方法一:
var str = '<p class="odd" id="odd">123</p>';
var pattern = /</?[a-zA-Z]+(s+[a-zA-Z]+=".*")*>/g;
console.log(str.match(pattern));
方法二:
var str = '<p class="odd" id="odd">123</p>';
var pattern = /<[^>]+>/g;
console.log(str.match(pattern));
方法三:
var str = '<input type="text" value=">" name="username" />';
var pattern = /<(?:[^"'>]|"[^"]*"|'[^']*')*>/g;
console.log(str.match(pattern));
說明:()表示捕獲分組,()會把每個分組里的余陵匹配的值保存起來,使用$n(n是一個數字,表示第n個捕獲組的沖碼內容)
(?:)表示非捕獲分組,和捕獲分組唯一的區別在於,非捕獲分組匹配的值不會保存起來
沒有引用的需散毀哪求的話,採用非捕獲性分組,更為簡潔;
方法四:
var str = '<input type="text" value=">" name="username" />';
var pattern = /<(?:[^"'>]|(["'])[^"']*1)*>/g;
console.log(str.match(pattern));
</script>
㈨ 求js的正則表達試獲取html字元串中的特定標簽id里的內容
正則方法很多,如:
let str ="<p id='a'>aaa</p><p>bbb</p>"匹配id='a'下的內容
可以這樣:let finall_str = /id=\'a\'>(.+?)<\//.exec(str)
得到結果:finall_str[1] -> 'aaa'
望採納!