高分求解JS字符串操作,JS高手请进
一个字符串求正规表达式分解指定内容,并存放一数组内。例如: <html> <body> <div><div>first</div></div> <div>last</div> </body> </html> 若以上内容按<div>分解,结果如下: array([1]=><div>first</div>, [2]=>last) 注:匹配的元素内容不需要分解,如上述的<div>first</div>, 问题点数:200、回复次数:13Top
1 楼fantiny(卖身不卖艺的菜鸟)回复于 2005-07-01 11:53:36 得分 0
用dom来不是很方便么。
顶高手用正则表达式。Top
2 楼slayerbb(名字被抢了)回复于 2005-07-01 12:51:58 得分 0
use dhtml so easyTop
3 楼leiaming(民族英雄-江湖最后一把杀猪刀-已经穷的只剩素质)回复于 2005-07-01 13:35:56 得分 0
没人帮忙吗Top
4 楼leiaming(民族英雄-江湖最后一把杀猪刀-已经穷的只剩素质)回复于 2005-07-01 13:38:10 得分 0
不是说要一定要用正则表达数,一般处理方法就行Top
5 楼scsjs(闪电回归)回复于 2005-07-01 13:40:11 得分 0
<script>
str="<html> <body> <div><div>first</div></div><div>2</div> <div>last</div> </body> </html>";
var re = new RegExp("<div>[^<]*</div>","ig");
var a = str.match(re);
for ( i=0; i<a.length; i++) {
alert(a[i]);
}
</script>Top
6 楼meizz(梅花雪)回复于 2005-07-01 14:48:57 得分 0
这个问题用DOM才最简单, 用正则实现起来非常麻烦, PS: 楼上的这位兄弟, 你的正则不够严格!!Top
7 楼meizz(梅花雪)回复于 2005-07-01 14:54:14 得分 0
<SCRIPT LANGUAGE="JavaScript">
<!--
var str = "<html> <body> <div><div>first</div></div> <div>last</div> </body> </html>";
document.write("<iframe name=mm frameborder=0 height=0 width=0></iframe>");
mm.document.write(str);
var nodes = window.frames["mm"].document.body.childNodes;
var result = new Array();
for(var i=0; i<nodes.length; i++)
{
if(nodes[i].tagName=="DIV")
result[result.length] = nodes[i].innerHTML;
}
alert(result);
//-->
</SCRIPT>Top
8 楼scsjs(闪电回归)回复于 2005-07-01 15:07:25 得分 0
re meizz(梅花雪):
呵呵,这位兄弟写代码,真是严谨呀。
不过这样老的很快呀。
PS:这样写是执行速度上会更慢,尤其是页面内容多的时候。Top
9 楼scsjs(闪电回归)回复于 2005-07-01 15:14:56 得分 0
re meizz(梅花雪):
还是不严格,
当iframe页面没有加载完毕的时候呢?
Top
10 楼meizz(梅花雪)回复于 2005-07-01 15:27:39 得分 200
用XML分析也比正则强呀!!
<SCRIPT LANGUAGE="JavaScript">
var x=new ActiveXObject("Microsoft.XMLDOM")
x.loadXML('<html> <body> <div><div>first</div></div> <div>last</div> </body> </html>');
node=x.selectNodes("/html/body/div");
var result = new Array();
for(var i=0; i<node.length; i++)
{
result[i] = "";
for(var k=0; k<node[i].childNodes.length; k++)
{
result[i] += node[i].childNodes[k].xml;
}
}
alert(result);
</SCRIPT>Top
11 楼ice_berg16(寻梦的稻草人)回复于 2005-07-01 16:15:23 得分 0
用正则要麻烦的多,用XML简单的多了。Top
12 楼leiaming(民族英雄-江湖最后一把杀猪刀-已经穷的只剩素质)回复于 2005-07-02 09:06:48 得分 0
梅老弟,你果真历害Top
13 楼phpsessid(风随影动)回复于 2005-07-02 09:52:16 得分 0
xml分析需要满足XML的格式,即严格的标签闭合,现在很多人写HTML还达不到XHTML 1.0Transitional的标准,XML分析会出问题的。Top




