r=reg
for i=1 to len(reg)
   if right(left(reg,i),1)="a" and right(left(reg,i-1),1)<>"a" and right(left(reg,i+1),1)<>"a" then
      r=left(r,i-1)&"aa"&left(r,i+1)
   end if
next

解决方案 »

  1.   

    function rep(str){
    var reg = /([^a])a([^a])/g;//我需要的正则式
    return str.replace(reg,'$1aa$2');
    }
      

  2.   

    to 
    "ronakitty(毓苫) ",兄弟,你用的不是正则式
      

  3.   

    请问稻草人:str.replace(reg,'$1aa$2');其中的'$1aa$2'为何不能是: 'aa'?'$1aa$2'起何作用?如何才能避免把‘a’前后的字符一起被替换?谢谢
      

  4.   

    $1aa$2的意思是前后两个正则匹配的保持原来的不变,因为不加的话例如aad后面的ad是可能替换的,明白?
      

  5.   

    123a456
    替换后
    123aa456
    不使用$1aa$2
    替换后
    12aa56
      

  6.   

    down个JS的help file look look
      

  7.   

    $1,$2就是引用两个括号
    ([^a])a([^a])   ([^a])//$1......a........([^a])//$2
    不知到您懂了吗?
    浅的教程:
    http://www.pconline.com.cn/pcedu/empolder/wz/php/0501/533294.html
    深入的话,去看一下perl的书