怎么用JS 提取一段字符串中所有被[]包围的字符,并组成数组?
要有好的容错性。
如胡乱的删减增加[ ][]间包含的字符不超过7个汉字

解决方案 »

  1.   

    这样?
    <textarea name="kk" id="kk" rows="10" cols="50">sdfsd[sdfsdfas]dfas]sfsfs[sdfsad]sdfs]fs]df[sdf][]sdf</textarea>
    <script type="text/javascript">
    <!--
        var re = /\[([^\]]{0,7})\]/gi;
    jj = re.exec(document.getElementById("kk").value); while (jj!=null) {
    alert(RegExp.lastMatch);
    jj = re.exec(document.getElementById("kk").value);
    }
    //-->
    </script>
      

  2.   

    <script>
    alert("afaf[阿发dddd发发]afadf[阿ddd萨德]sdflj[澳网f佛]ad".match(/(\[[^\]]{1,7}\])/gi));
    </script>
      

  3.   

    如果lz想要数据返回,那么用reg.exec()解析之后,建一个空数组,利用push方法把解析后的字符串加到数组里。
      

  4.   


    var a = "afaf[阿发dddd发发]afadf[阿ddd萨德]sdflj[澳网f佛]ad".match(/(\[[^\]]{1,7}\])/gi);
    alert(Object.prototype.toString.apply(a));
      

  5.   


    exec 不是只返回第一个匹配的么