<script>
var src = "<LDNS:myDropDown id=a 这里有很多属性></LDNS:myDropDown><LDNS:myDropDown id=b 这里有很多属性></LDNS:myDropDown>";
var re =/\<LDNS:myDropDown [^\>]*\>\<\/LDNS:myDropDown\>/ig;
var arr= re.exec(src);
alert(arr.length+'   '+arr);
</script>上面是我写的。就是要把字符串中的标签都取到数组里。我好一个个处理。
高手帮帮忙把这个写对来。
感觉应该很简单的啊。前面是<LDNS:myDropDown,后面是</LDNS:myDropDown>,中间都不管。
C#语法一下就搞定了。JavaScript的却搞了一下午。

解决方案 »

  1.   

    试试看:var s = " <LDNS:myDropDown id=a 这里有很多属性> <\/LDNS:myDropDown> <LDNS:myDropDown id=b 这里有很多属性> <\/LDNS:myDropDown>"; 
    var re =/ <LDNS:myDropDown [^>]+\> <\/LDNS:myDropDown>/ig; 
    var a
    while((a=re.exec(s))!=null){
        alert(a[0])
    }
      

  2.   

    要这个?还是再取里面的?var src = " <LDNS:myDropDown id=a 这里有很多属性> </LDNS:myDropDown> <LDNS:myDropDown id=b 这里有很多属性> </LDNS:myDropDown>";
                    var re =/\ <LDNS:myDropDown [^\>]*\>\ <\/LDNS:myDropDown\>/ig;
                    var arr= src.match(re);
                    alert(arr.length+'  '+arr);
      

  3.   


      <script type="text/javascript">
      <!--
    // 如果有这种情况<LDNS:myDropDown id=">" name='a'>
    var src = " <LDNS:myDropDown id=a 这里有很多属性> </LDNS:myDropDown> <LDNS:myDropDown id=b 这里有很多属性> </LDNS:myDropDown>"; 
    var reg = /<(LDNS:myDropDown)(?:\'[^\']*\'|\"[^\"]*\"|[^\'\">]*)>\s*<\/\1>/ig;
    var arr = [];
    while((result = reg.exec(src)) != null){
    arr.push(result[0]);
    }
    alert(arr);
      //-->
      </script>