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正则表达式验证手机号,email地址,邮政编码
- js正则表达式中test,exec,match方法的区别说明
- javascript验证正整数及常用的JavaScript验证正则表达式
- javascript笔记(JavaScript_Core电子书)-正则表达式
- 正则表达式中空格的危害
- JS常用正则表达式【持续更新】
- 6-正则表达式例子(总结)
- 6-正则表达式详细+数组note
- JS判断文本框中只能输入数字和小数点
- 学习正则表达式
- js最新手机号码、电话号码正则表达式
- JavaScript中的正则表达式总结
- JS最新手机号码检验正则表达式
- js正则表达式-前瞻
- JS 正则表达式
- js正则表达式用法实例:验证邮箱格式、密码复杂度、手机号码、QQ号码
- 正则表达式过滤中文
- 最全、最常用的正则表达式
- js正则表达式使用变量
- 最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等