您的位置:首页 > Web前端 > JavaScript

js正则过滤span标签中不包含datatype属性的所有span,仅保留内容

2014-04-28 17:26 399 查看
<html>
<script>
function test(){
// var xhtml='大家好hello <span data1="2" style="border:1 solid red;z-index:1;font-size:14px;color:dd;" data="1">你好</span>';
// xhtml = xhtml.replace(/(<span[^<>]*style=\".*?)(font-size:\w*[;]*)(.*?\"[^<>]*>)/gi, "$1$3");
//alert(xhtml);
var xhtml='    <p>  <font color="#a4512c">测试测试中国不太可能经</font>历上世纪90年代日本所面临的资产价格泡沫破灭,但海外资金快速流出,或导致中国房地产价格大幅调整。</p><p>  周二在一份研究报告中指出</font>,“对<font color="#a4512c">于仍在复苏过程中的全球经济而</font>言,中国资产市场获得长足发展及中国经济稳定成长非常重要。”</p><p>  <span datatype="specialtag" datavalue="推荐" style="display: block;border: 3px solid blue;" title="推荐">报告称,中国目前资产价格走高,主要受人口城镇化带来的实质需求驱动。这与上世纪日本更多受投机资金推动所形成的资产价格泡沫不同。报告称,中国公司大部分支出的资金来源都是内部储备,降低了未来债务超重的风险。</span></p><p>  因此,即便中国房地产价格开始下跌,调整幅度也不会像日本上世纪90年代那样严重。</p><p>  但报告也指出,海外热钱流入和</p><p>  <p><span datatype="specialtag" datavalue="百科" style="display: block;border: 3px solid red;" title="百科">中国当地政府加快房地产开发的举措,可能导致房市过热。若投资者开始担心中国资产价格或将面临调整可能,他们也许会撤走资金,这会激化调整幅度</span></p></p><p>  。</p>';
var regValidSpan=/<span[^<>]*?datatype="(?:specialtag|bottomLink|smalltitle)"[^<>]*?>(.*?)<\/span>/gi;
var regAllSpan=/<span[^<>]*?>(.*?)<\/span>/gi;
/*if(!(regValidSpan.test(xhtml))){
xhtml=xhtml.replace(/<span[^<>]*?>(.*?)<\/span>/gi,"$1");
}else{

}*/

var result=null;
var count=0;
var last=null;
var temp=null;
while((result=regAllSpan.exec(xhtml))!=null){
count++;
if((regValidSpan.test(result[0]))== false || (regValidSpan.test(result[0]))=="false"){
xhtml=xhtml.replace(result[0],result[1]);
}
regAllSpan.lastIndex=xhtml.indexOf(result[1])+result[1].length;
temp=xhtml.substring(last);
//result=null;
}
//alert(count);
//alert(xhtml);
document.write(xhtml);
/**
var xhtml='<p style="text-align: left;border:1 solid red;z-index:1;font-size:14px;color:dd;">';
var xhtml='<p style="TEXT-ALIGN: justify; PADDING-BOTTOM: 0px; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 2em; MARGIN: 26px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: 16px/28px 宋体, sans-serif; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(37,37,37); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-stroke-width: 0px" class="test">';
xhtml='<p align="center" style="border:1 solid red;text-align: left;border:1 solid red;z-index:1;font-size:14px;color:dd;">';
//xhtml='<p style="border:1 solid red;text-align: left;">';
var regValidSpan=/<p([^<>]*?)style=\".*?(text-align:.*?;)?.*?\"([^<>]*?)>/gi;
xhtml=xhtml.replace(regValidSpan,'<p $1 style="$2" $3>');
alert(xhtml);*/
}
</script>
<body>
<p>hello world!test,test</p>
<input type="button" value="add" onclick="test()"/>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js正则表达式