在前面加个alert(a)结果为null..说明没匹配到呗..
出错是正常的~~~随便输入几个字不包含链接或者留空你的程序都会出错....还有去空格简单地这么写就可以了
.replace(/^\s+|\s+$/g,"")而上面有链接没有匹配原因是你的正则有错呗~~
你用js说明可以用dom,为什么不直接取得img对象再修改src属性呢..还要用正则提取图片地址...多麻烦啊..

解决方案 »

  1.   

    <script> 
    function Replace() 

        var   ta=document.getElementById("ta");
        var s = ta.value; 
        var reg = /http:\/\/www.yi13.cn/;
        var tmp="http://www.yi3.cn/tu.asp?url=";
        var div=document.createElement("div");
        div.innerHTML=s;
        var img=div.getElementsByTagName("img");
        for(var i=0;i<img.length;i++){
            if(!reg.test(img[i].src))img[i].src=tmp+img[i].src;
        }
        ta.value=div.innerHTML;
    }</script> <textarea cols="50" rows="20" id="ta"> </textarea> 
    <br/> 
    <input type='button' value='提交' onclick='Replace()'/>
      

  2.   

    <script> 
    String.prototype.Trim= function()
    {
        return this.replace(/(^\s*)|(\s*$)/g, "");
    }function Replace() 

        var ta=document.getElementById("ta");

    ta.value = ta.value.Trim().replace(/(<img[^>]*?src=(['"]?))(?!http:\/\/www\.yi13\.cn\/tu\.asp\?url=)([^\2]*?\2[^>]*?>)/img, "$1http://www.yi13.cn/tu.asp?url=$3");
    }</script> 参考
      

  3.   


    <P><IMG src="http://www.yi13.cn/bt/UpFile/UpAttachment/2008-1/2008111225715.jpg"></P>
    <P><IMG src="http://www.163.com/2008111225715.jpg"></P>你这个是要变还是不要变呀?还是上面的不变,下面的要变?
      

  4.   

    再贴个正则..
    <script> 
    function Replace() 

        var   ta=document.getElementById("ta");
        var reg = /(<img\s[^<>]*src\s*=\s*["']?)(?!http:\/\/www.yi13.cn)([^"']+)(["']?)/ig;
        var tmp="http://www.yi3.cn/tu.asp?url=";
        ta.value=ta.value.replace(reg,"$1"+tmp+"$2$3");
    }
    </script> <textarea cols="50" rows="20" id="ta"> </textarea> 
    <br/> 
    <input type='button' value='提交' onclick='Replace()'/>
      

  5.   

    回he_8134
    我输入:
    <P><IMG src="http://www.yi13.cn/bt/UpFile/UpAttachment/2008-1/2008111225715.jpg"></P>
    <P><IMG src="http://www.163.com/2008111225715.jpg"></P>提交后:正常
    <P><IMG src="http://www.yi13.cn/bt/UpFile/UpAttachment/2008-1/2008111225715.jpg"></P>
    <P><IMG src="http://www.yi3.cn/tu.asp?url=http://www.163.com/2008111225715.jpg"></P>-----------------------------------------------------------------------------------------
    但当输入
    <P><IMG src="http://www.yi3.cn/tu.asp?url=http://www.163.com/2008111225715.jpg"></P>
    输出:
    <P><IMG src="http://www.yi3.cn/tu.asp?url=http://www.yi3.cn/tu.asp?url=http://www.163.com/2008111225715.jpg"></P>没有满足下条件:
    再如果图片地址已经加上:http://www.yi3.cn/tu.asp?url=   
    则就不用再加上:http://www.yi3.cn/tu.asp?url=   
      

  6.   

    回:cloudgamer 你给出的代码没有满足:
    如果表单中的图片地址已经含有这个域名:http://www.yi13.cn       
    则不用加上:http://www.yi3.cn/tu.asp?url=       
    否则加上:http://www.yi3.cn/tu.asp?url=   再如果图片地址已经加上:http://www.yi3.cn/tu.asp?url=   
    则就不用再加上:http://www.yi3.cn/tu.asp?url=  
      

  7.   

    1.如果表单中的图片地址已经含有这个域名:http://www.yi13.cn              
    则不用加上:http://www.yi3.cn/tu.asp?url=              
    否则加上:http://www.yi3.cn/tu.asp?url=      2.再如果图片地址已经加上:http://www.yi3.cn/tu.asp?url=      
    则就不用再加上:http://www.yi3.cn/tu.asp?url=  
    2是多余的吧
      

  8.   

    回:铭轩图片地址已经加上:http://www.yi3.cn/tu.asp?url=
    如果再加多一次,图片读取速度会很慢比如
    http://www.yi3.cn/tu.asp?url=http://www.yi3.cn/tu.asp?url=http://www.163.com/2008111225715.jpg
      

  9.   

    chinmo帮写个代码喂!
    急用啊
    呵呵。
      

  10.   

    String.prototype.Trim= function()
    {
        return this.replace(/(^\s*)|(\s*$)/g, "");
    }function Replace() 

        var ta=document.getElementById("ta");

    ta.value = ta.value.Trim().replace(/(<img\s[^>]*?src=['"]?)(http:\/\/www\.(?!yi13\.cn))/img, "$1http://www.yi13.cn/tu.asp?url=$2");
    }这个呢
      

  11.   


    ta.value = ta.value.Trim().replace(/(<img\s[^>]*?src=")(?!http:\/\/www\.yi13\.cn)/img, "$1http://www.yi13.cn/tu.asp?url=");
      

  12.   

    cloudgamer
    你太历害了,这么短的代码主能满足我的要求!
    非常感谢!
    我再测试一个小时,如果没有问题就结贴!!