日期:2014-05-16  浏览次数:20456 次

js正则找到字符串的内容,并替换内容
本帖最后由 bychgh 于 2012-03-01 14:58:10 编辑
一段文本字符串,用js 正则根据父item 的 id在其中找出,并替换它的子内容

<item  text="a" id="1" >
<item  text="a1" id="2"></item>
<item  text="a2" id="3"></item>
....
</item>


根据 id=1 找出 父item, 然后用新的 item 内容替换其内部的老item 
要添加的新item

<item  text="ba1" ></item>
<item  text="ba2" ></item>

最后得到的代码为:


<item  text="a" id="1" >
<item  text="ba1" ></item>
<item  text="ba2" ></item>
</item>



------解决方案--------------------
写了个例子你看看

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

 <BODY>
  <script type="text/javascript">
var tagContent = "<div>呵呵呵</div><div>哈哈哈</div>" 
function replace(){
var superNod = document.getElementById("11").parentNode;
for(var i = superNod.childNodes.length - 1; i > 0; i--){
superNod.removeChild(superNod.childNodes[i]);
}
superNod.innerHTML = superNod.innerHTML + tagContent;
}
  </script>

  <div>
<div id="11">zhangsan</div>
<div name="ee">lisi</div>
<div name="bb">wangsu</div>
  </div>

  <input type="button" value="替换内容" onclick="replace()"/>
 </BODY>
</HTML>


------解决方案--------------------
var str = "abcd{jkdx}sdfsdaf{mm}";
str = str.replace("jkdx","kkk");
这样直接替换呢?
------解决方案--------------------
如果你是用在一个Web应用中使用,可以把这串字符串作为innerHTML插入到某个隐藏的div里面,就可以利用dom的代码进行操作了。
另外你的需求也不明确


<item  text="a1" id="2"></item>
<item  text="a2" id="3"></item>
....  <----从这个省略号可以看出你不止两个item,那你是不是想把text="aX"都换成text="baX"?而且也没哪个HTML标签是item吧,你自己定义的???我不是正则高手,如果这些东西都不确定是很难写出正则的
------解决方案--------------------
我发誓,6楼不是我回复的代码,我回复的是JS正则,点击提交就成了JAVA代码了,见鬼了...........


原回复如下:

var html="";
html=html.replace(/(<item[^>]*?id=(['"]?)1\2\s*>)(\n<item[^>]*?>