str ='1,2,4,8,16'1,2,4,8
1,4,16
或者
2,4,8
4,16就是可以任意替换。
    要么是替换第一位以后的,可以为‘,a’
    要么是替换第一位的,'a,'
这样的替换怎么写呢?请高手指点下!
stringObject.replace(regexp,replacement)

解决方案 »

  1.   

    str = str.replace("a","b");此方法能将str中的字符a换成b,但是只能换第一个,如果要所有的a都换成b
    则:str = str.replace(/a/g,"b");也就是说replace()方法中的参数支持正则表达式。
      

  2.   

    哥们,你说的,不能解决我的问题啊!我其实想实现:  一个正则表达式,找个正则表达式可以判断“a,”和“,a”两种情况。只要是符合“a,”和“,a”的就替换。
    当然,a是我传进的一个值。
    譬如 a=1 ,那么就要匹配 “a,”的情况,(此时str='1,2,4,8,16')
    如果,a=2,那么就要匹配 “,a”的情况,(此时str='1,2,4,8,16')有正则表达式高手的,请告诉我一下,谢谢!
      

  3.   


    <script>
    var reg = /^(,[^,]*,?)|([^,]*,?)/;
    var str = "1,2,4,8,16";
    alert(str.replace(reg, ""));str = ",2,4,8,16";
    alert(str.replace(reg, ""));
    </script>
      

  4.   

    3楼的仁兄,这句什么意思,我想把 reg 换成 可以接受 参数的 ,就是我传入 2 ,它将查找 str,看 2 是在首位,还是在其他位置,然后,将它替换为''。
    可是,我不懂你写得reg,也不知道怎么替换,你再帮我一把吧。
      

  5.   

    ("1,2,3,4,5").replace(/(,?)1(,?)/,"$1").replace(/,$/,"")
      

  6.   

    刚才不在,如果要接受参数,3楼不能满足要求
    另外 5 楼的正则也是错的,试试 "123,3,4,5,6".replace(/(,?)1(,?)/,"$1").replace(/,$/,"")下面应该是对的<script>
    var keyword = "1";// 要传入的参数
    var reg = new RegExp("(^," + keyword + "(?=,|$),?)|(^" + keyword + "(?=,|$),?)", "i");
    var str = "1,2,4,8,16";
    alert(str.replace(reg, ""));str = ",2,4,8,16";
    alert(str.replace(reg, ""));alert("123,4,5,6".replace(reg,"$1"));
    顺便解释一下:(传入的参数为 exp)
    ("(^,exp(?=,),?)|(^exp(?=,|$),?)^ 字符串开始
    , 一个逗号
    ,|& 逗号或者字符串结束
    (?=,|$) 断言 exp 后面出现的是逗号,或者是字符串结束
    ,? 逗号出现 0 次或 1 次
    | 前后两个表达式任意出现一个
      

  7.   

    ,|& 逗号或者字符串结束
    应该是 ,|$