比如要抓取一段html代码中id为d1的div及其内部的所有代码怎么弄?用正则

解决方案 »

  1.   

    这种事情一般交给DOM去做,不是什么都用正则更好。
      

  2.   

    把它们插入一个隐藏的DIV即可。
      

  3.   

    不知道楼主的具体意思,如果是想获得一个DIV里面的所有内容,那如下是可以实现的var dlHTML=document.getElementById('dl').innerHTML;
      

  4.   


    var d1Val= document.getElementById('d1').innnerHTML;获得到所有Div中所有的html代码
      

  5.   

    这种需求通常是批量的,难道每次都插入到dom??.
    不过我正则不好帮不了忙.
      

  6.   

    肯定不能用dom,生成dom树那是那多庞大的开销。用正则智能解析是正解!
      

  7.   


    插入到display none的节点中,问题不大,而且,话说用正则去匹配可能包含嵌套的内容灰常麻烦~~``  - -!
      

  8.   

    这个是正则的经典用例,麻烦不麻烦只在于正则水平的问题.如果这段html中有成千上万个节点呢.且不说插入的速度跟节点数量和结构有很大关系.insert之后还要remove吧. 带来的内存问题和时间开销完全不必要. 插入dom的方式纯属扯淡.
      

  9.   

    貌似楼上有点激动,插入DOM只是一种实现方式,怎么也不会和扯蛋扯上关系吧?你正则强,当然可以选择正则,蛋定~~```另,希望给出正则方案的童鞋记得验证是否健壮!
      

  10.   

    路过...
    素哇,只是一种解决方案嘛...
    虽然说会有一些小问题...比如插入后再取innerHTML就和插入前的大小写引号什么不一样了(ie)
    但是这个还要根据需求来确定用哪种方案更合适...
    用正则也能实现,虽然没有命名分组,没有递归.但是也可以变通.可以利用正则的lastIndex rightContent什么的.
    也可预制n个层次的分支一个式子搞定...
      

  11.   

    用正则?
    你怎么定义“内部代码”,是仅仅嵌在div里面的?万一内部代码用js控制呢?灵活性太差了吧
    做过类似题目,用服务器语言获得html,传送到页面,用display:none,然后使用dom.
    看我的回帖