js replace 替换某段html标签之间的内容 本帖最后由 fengyu2004_4 于 2014-07-24 23:19:31 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var str="第<SPAN id=topic_4>1</SPAN>题:"var reg=/id=topic_(\d+)/;var arr=reg.exec(str);var s=['零','一','二','三','四','五','六','七','八','九']if(arr&&arr.length>0){ str=s[arr[1]];}alert(str); str="<DIV class=tChange>"str=str+"<<DIV onclick=switchTflag(1,1); class=first></DIV>"str=str+"<DIV onclick=switchTflag(1,1); class=previous></DIV>"str=str+"<DIV onclick=switchTflag(1+1,1); class=next></DIV>"str=str+"<DIV onclick=switchTflag(70,4); class=last></DIV>"str=str+"</DIV>"var div=document.createElement('div');div.innerHTML=str;div.removeChild($('.tChange')[0]);alert(div.innerHTML); var str="第<SPAN id=topic_1>1</SPAN>题:第<SPAN id=topic_2>1</SPAN>题:第<SPAN id=topic_4>1</SPAN>题:"var nums=['零','一','二','三','四','五','六','七','八','九','十']str=str.replace(/<SPAN id=topic_(\d)+>.*?<\/SPAN>/ig,function(s){s=s.match(/id=topic_(\d)+>/i);return nums[parseInt(s[1],10)]; });alert(str); str="html htmlhtmlhtml<DIV class=tChange>"str=str+"<DIV onclick=switchTflag(1,1); class=first></DIV>"str=str+"<DIV onclick=switchTflag(1,1); class=previous></DIV>"str=str+"<DIV onclick=switchTflag(1+1,1); class=next></DIV>"str=str+"<DIV onclick=switchTflag(70,4); class=last></DIV>"str=str+"</DIV>替换"alert(str.replace(/<DIV class=tChange>[\d\D]*?<\/DIV>\s*<\/DIV>/i,"")) 经测试,以上的方法都可以的,但有一个问题就是“字符串”我是用asp生成的,如果是IE浏览器,上面的代码可以达到我要的效果,可以替换掉成空;但是如果是firefox浏览器,它默认会加上“双引号”,比如:<DIV class=tChange>asp输出之后,它会变成<DIV class=“tChange”>多了双引号,结果就替换不掉,这样,往往,这样的relace我得写2次重复的语句代码,很麻烦,有没有办法只写一次的代码就可以的???下面就是我现写的2次重写的代码:str.replace(/<DIV class=tChange>[\d\D]*?<\/DIV>\s*<\/DIV>/i,"")) //针对ie浏览器str.replace(/<DIV class="tChange">[\d\D]*?<\/DIV>\s*<\/DIV>/i,"")) //针对firefox浏览器(tChange多一个“双引号”的处理)万分感谢,这个解决完,就结贴了~~呵呵 str.replace(/<DIV class="?tChange"?>[\d\D]*?<\/DIV>\s*<\/DIV>/i,"")) 非常感谢各位高手的相助,终于解决了,谢谢你们~!也谢谢csdn这个平台 ! 如何在外部js文件中选择文档中的元素 求客户端GET 改变referer方法! js 正则表达式 提取 字符转 防止重复提交 js里设置页面属性和HTML的写法有什么区别 请教一个很墨迹的问题? 难找啊!!~~~~javascript的问题 js是怎样操作数据库的???? 在一个TEXT中如何触发回车事件???在线等 如何实现调用客户端的Powerpoint来打开.ppt文件? action当中将一个数组userList传过来了 在js中怎么获取这个数组 大家进来看看这个是什么问题
var reg=/id=topic_(\d+)/;
var arr=reg.exec(str);
var s=['零','一','二','三','四','五','六','七','八','九']
if(arr&&arr.length>0){
str=s[arr[1]];
}
alert(str);
str=str+"<<DIV onclick=switchTflag(1,1); class=first></DIV>"
str=str+"<DIV onclick=switchTflag(1,1); class=previous></DIV>"
str=str+"<DIV onclick=switchTflag(1+1,1); class=next></DIV>"
str=str+"<DIV onclick=switchTflag(70,4); class=last></DIV>"
str=str+"</DIV>"
var div=document.createElement('div');
div.innerHTML=str;
div.removeChild($('.tChange')[0]);
alert(div.innerHTML);
var nums=['零','一','二','三','四','五','六','七','八','九','十']
str=str.replace(/<SPAN id=topic_(\d)+>.*?<\/SPAN>/ig,function(s){s=s.match(/id=topic_(\d)+>/i);return nums[parseInt(s[1],10)]; });
alert(str); str="html htmlhtmlhtml<DIV class=tChange>"
str=str+"<DIV onclick=switchTflag(1,1); class=first></DIV>"
str=str+"<DIV onclick=switchTflag(1,1); class=previous></DIV>"
str=str+"<DIV onclick=switchTflag(1+1,1); class=next></DIV>"
str=str+"<DIV onclick=switchTflag(70,4); class=last></DIV>"
str=str+"</DIV>替换"
alert(str.replace(/<DIV class=tChange>[\d\D]*?<\/DIV>\s*<\/DIV>/i,""))
str.replace(/<DIV class="tChange">[\d\D]*?<\/DIV>\s*<\/DIV>/i,"")) //针对firefox浏览器(tChange多一个“双引号”的处理)万分感谢,这个解决完,就结贴了~~呵呵