如题,要把每一行行首的空格替换成同等数量的-(有几个空格就替换成几个-)
我写的: 
<script>
var a = function(v){
  return v.replace(/^( )/gm, "-"); \\只能替换第一个空格
}
var b = function(v){
  v.replace(/^( )+/gm, "-"); \\多个空格被替换成一个横线
}
</script>忘高手指点,谢谢

解决方案 »

  1.   

    function test(){
    var v="        a";
    var s=v.replace(/(^ +)/g, "");
     v= new Array(v.length-s.length).join("_")+s; 
     alert(v);
    }
      

  2.   

    上面作废function test(){
    var v="        a";
    var s=v.replace(/(^ +)/g, new Array(v.length-"$1".length).join("_"));
     alert(s);
    }
      

  3.   

    var s = " 1\n  2\n   3 4 5 \n6";
    s = s.replace(/^ +/gm, function(all) {
        return all.replace(/ /g, '-');
    });
    alert(s);先这样。
      

  4.   


    谢谢zswang,测试通过!原来可以进行二次替换,把问题分解开来解决,看来俺不光技术不行,脑子还有点死,呵呵!再次感谢!分不多,不要介意哦!
      

  5.   

    function test(){
    var v="    a";
    var s=v.replace(/(^ +)/g, new Array(v.length-"$1".length+2).join("_"));
     alert(s);
    }同学没通过是因为Array长度少加了2的  不好意思,,,