这样代码的情况下指定页面的超链接自动改变前面的代码:
例如:http://www.googo.com?url=http://www.163.com这类的字符,js自动改变前面的代码后
变为:http://www.baidu.com?url=http://www.163.com.
其中改变前的www.googo.com是指定的2个以上的(比如只有域名是www.googo.com和www.sogou.com这2个才自动改变,其他的域名不变)各位大侠应该明白我的意思了吧?

解决方案 »

  1.   

    var strd="http://www.googo.com?url=http://www.googo.com";
    function replaceUrl(a){
        var re=/(www.googo.com|www.sogou.com)\?/g;
        return a.replace(re,"www.baidu.com?");
    }
    alert(replaceUrl(strd))
    只改变前面的
      

  2.   


    谢谢啦!我尝试了一下,没有成功
    <script>
    var strd="http://www.googo.com?url=http://www.googo.com";
    function replaceUrl(a){
        var re=/(www.googo.com|www.sogou.com)\?/g;
        return a.replace(re,"www.baidu.com?");
    }
    alert(replaceUrl(strd))
    </script><a href=http://www.googo.com/item.htm?url=http://www.163.com target="_blank">看看 </a>  
    <a href= http://www.souhu.com/item.htm?url=http://www.csdn.net target="_blank">说说 </a>  需要自动改变超链接?号前面的,?号后面的内容是多变不是固定的。改变?号前面的是指定的域名,比如www.baidu.com。谢谢!
      

  3.   

    Lz你以后别这么问问题有啥格式说明的,你给示例要么给个最复杂格式+最简短格式的,要么你就做额外的说明别搞得按你给的示例写了,你又拿别的格式来测试function replaceUrl(a){
        var re=/(www.googo.com|www.sogou.com)(\S*)(\?)/g;
        return a.replace(re,"www.baidu.com$2$3");
    }
    var strd="http://www.googo.com/b/c/a.html?url=http://www.googo.com";
    alert(replaceUrl(strd))
    strd="http://www.googo.com/a.html?url=http://www.googo.com";
    alert(replaceUrl(strd))
    strd="http://www.googo.com/?url=http://www.googo.com";
    alert(replaceUrl(strd))
    strd="http://www.googo.com?url=http://www.googo.com";
    alert(replaceUrl(strd))
      

  4.   


       谢谢啦!我尝试了一下,在IE和谷歌下都没有成功
    <script>
    function replaceUrl(a){
        var re=/(www.googo.com|www.sogou.com)(\S*)(\?)/g;
        return a.replace(re,"www.baidu.com$2$3");
    }
    var strd="http://www.googo.com/b/c/a.html?url=http://www.googo.com";
    alert(replaceUrl(strd))
    strd="http://www.googo.com/a.html?url=http://www.googo.com";
    alert(replaceUrl(strd))
    strd="http://www.googo.com/?url=http://www.googo.com";
    alert(replaceUrl(strd))
    strd="http://www.googo.com?url=http://www.googo.com";
    alert(replaceUrl(strd))
    </script><a href=http://www.googo.com/item.htm?url=http://www.163.com target="_blank">看看 </a>   
    <a href= http://www.souhu.com/item.htm?url=http://www.csdn.net target="_blank">说说 </a>   您运行一下看看,谢谢
      

  5.   

    你是不是看错了?我从IE6~IE8,FF,Chrome下都试过了。没有问题的东西。你怎么个测试法?
      

  6.   

    上面的代码,点击【看看】想要的结果是改变后的超连接:http://www.baidu.com/item.htm?url=http://www.163.com,现在测试还是原来的这个http://www.googo.com/item.htm?url=http://www.163.com运行代码后,有弹窗显示JS内的http://www.googo.com/b/c/a.html?url=http://www.googo.com,改变了前面,但是文本中的看看、说说的超链接没有改变。
      

  7.   

    <script type="text/javascript">
    function replaceUrl(a){
        var re=/(www.googo.com|www.sogou.com)(\S*)(\?)/g;
        return a.replace(re,"www.baidu.com$2$3");
    }
    window.onload=function(){
        var links=document.links;
        for(i=0;i<links.length;i++){
            var url=replaceUrl(links[i].getAttribute("href"));
            links[i].setAttribute("href",url)
        }
    }
    </script>
    <a href=http://www.googo.com/item.htm?url=http://www.163.com target="_blank">看看  </a>      <a href= http://www.souhu.com/item.htm?url=http://www.csdn.net target="_blank">说说  </a>