str = str.replace(正则表达式 , function(){return parseInt(arguments[2])+1});arguments[0]是找到的字符串,arguments[1]是匹配的$1,arguments[2]是匹配的$2
不知这样可不可以?

解决方案 »

  1.   

    这里的arguments[]数组从何而来?
      

  2.   

    function f(a,b,c){return f.arguments[1];}
    a就是f.arguments[0],b就是f.arguments[1],c就是f.arguments[2]
      

  3.   

    可能是我说的不完整吧,我要做的是把一串文本中类似{{附件0:windows.doc}}这样的替换成
    <a href=document?column=附件&no=1>windows.doc</a>这样的字符串,文本中类似的串可能不止一个,我以前已经实现了替换成<a href=document?column=附件&no=0>windows.doc</a>,现在想要把对应的no=0改成no=1,怎么实现?
    象我前面所说的,使用eval()函数报$2没有定义;直接使用字符串则得到的结果是类似no=0+1这样的。
      

  4.   

    replace( /{{附件(\d+):([^}]+)}}/g , function(){return "<a href=document?column=附件&no=" + (parseInt(arguments[1])+1) + ">" + arguments[2] + "</a>"} );
      

  5.   

    验证可以,非常感谢!能给我讲讲function没有指定参数,怎么可以在函数体内部引用arguments[]啊!
    replace那个方法我不是很清楚,非常感谢!
      

  6.   

    arguments[]严格来说是要functionname.arguments[]
    类似于c语言里的main(int argc ,char *argv[])
    jscript手册上应该有介绍arguments的
    replace替换function是jscript5.5以后的,
    低版本的IE可能不能运行,这样的话估计实现你的效果很麻烦了!