㈠ 如何使用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'
望采纳!