<script type="text/javascript">
var s = "3453454351{2}11{345}$Goodfdf678())";
alert(s.replace(/.*?\{(\d+)\}[^\{]*/g, "$1\xff").replace(/\xff$/, "").split("\xff").join("\n"))
</script>

解决方案 »

  1.   

    能不能用一个正规表达式就出来结果,而不用javascript的split,join函数啊? 因为我不是用js来做程序的.
      

  2.   

    噢。。
    <script type="text/javascript">
    var s = "3453454351{2}11{345}$345}Goodfdf678())";
    s = s.replace(/.*?\{(\d+)\}[^\{]*/g, "$1,");
    s = s.match(/\d+(?=,)/g);
    alert(s);
    </script>
    JS只有反向预查。所以只能这么取。或者捕获
      

  3.   

    str = "3453454351{2}11{345}$Goodfdf678())";
    re = /[^{]*\{([^}]*)\}/g;
    while(re.exec(str))alert(RegExp.$1);