/<a.*(\?)>/U
这是问号的。

解决方案 »

  1.   

    var reg = /[^http:\/]([\/\?&])/ig
    str = str.replace(RegExp.$1, "_")
      

  2.   

    $a = "<a href=HTTP://www.77169.org/book/program/php4/sample.asp?pid=21&cm=83>xiami..</a>"; $s = preg_replace("/[\/\?&]/","_",$a);
      

  3.   

    to slamdunk3(流川枫) 
    背后还要加个.htm即83.htm 怎么办啊
      

  4.   

    to slamdunk3(流川枫) 
    这样替换结果有误,比如变成_ww.77169.org_ook.......有些字符没了~`
    to zairwolfo(君子兰)
    你的方法能具体点吗,我看不到懂,比较菜,请见谅!
      

  5.   

    slamdunk3(流川枫) 的替换将地址的头部也替换掉是正常的,因为头部也是/字符。你最好在替换之后再用str_replace进行二次替换回来那个顶级网址。
      

  6.   

    谢谢大家,问题已经解决了,我用preg_replace_callback