//完成url重定的URL整理工作
function   Replace() 

    //正则表达式,匹配"http://"或"https://"的字符串,即url。不区分大小写,全程匹配。
    var   reg=/(https?:\/\/\S+)/gi 
    //这个,呵呵,就是获取id为"ta"的元素,赋值给ta变量
    var   ta=document.getElementById("ta"); 
    //处理它元素的值。如过该值中有复核reg正则表达式的匹配,全部在前面加上"http://www.yi3.cn/tu.asp?url="
    ta.value=ta.value.replace(reg,"http://www.yi13.cn/tu.asp?url=$1"); 

解决方案 »

  1.   

    各位能不能帮我改一下,改成--------------------------
    如果表单中的值http://的值已经加上http://www.yi3.cn/tu.asp?url=则就不用再加上http://www.yi3.cn/tu.asp?url=
      

  2.   

    试图把<textarea     id="ta"> 里出现的网址替换成"http://www.yi13.cn/tu.asp?url=$1"对网址的判断很简陋, 因此加上"试图"二字
      

  3.   

    如果表单中的值http://的值已经加上http://www.yi3.cn/tu.asp?url=则就不用再加上http://www.yi3.cn/tu.asp?url=使用(?!pattern)  表达式和替换部分还要改改
      

  4.   

    很久没玩过正则了, 下面的可以给你点思路. 自己测试
    reg=/https?:\/\/(?!www.yi3.cn/tu.asp?url=)\S+/gi 
    ta.value.replace(reg,"http://www.yi13.cn/tu.asp?url=$1$2")
      

  5.   


    function trim(str){
        return str.replace(/\s*(\S+\s*)*)/,"$1").replace(/((\s*\S+)*)\s*/,"$1");
    }
    function isURL(str){
        str = trim(str);
        return /^(http|https):\/\/(([A-Z0-9][A-Z0=9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(str);
    }
    function   Replace() 

        var   ta=document.getElementById("ta");
        var s = ta.value; 
        var u = "http://www.yi3.cn/tu.asp"
        if(isURL(s) && s.indexOf("u")==-1)
           ta.value = u + "?url=" + trim(s);
      

  6.   


    测试后错误,说缺少对象
    <script> 
    function trim(str){
        return str.replace(/\s*(\S+\s*)*)/,"$1").replace(/((\s*\S+)*)\s*/,"$1");
    }
    function isURL(str){
        str = trim(str);
        return /^(http|https):\/\/(([A-Z0-9][A-Z0=9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(str);
    }
    function Replace() 

        var   ta=document.getElementById("ta");
        var s = ta.value; 
        var u = "http://www.yi3.cn/tu.asp"
        if(isURL(s) && s.indexOf("u")==-1)
           ta.value = u + "?url=" + trim(s);
    }
    </script> <textarea id="ta"> </textarea> <br/> 
    <input type='button' value='提交' onclick='Replace()'/> 
      

  7.   


    <script> 
    function trim(str){
        return str.replace(/\s*((\S+\s*)*)/,"$1").replace(/((\s*\S+)*)\s*/,"$1");
    }
    function isURL(str){
        str = trim(str);
        return /^(http|https):\/\/(([A-Z0-9][A-Z0=9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(str);
    }
    function Replace() 

        var   ta=document.getElementById("ta");
        var s = ta.value; 
        var u = "http://www.yi3.cn/tu.asp"
        if(isURL(s) && s.indexOf("u")==-1)
           ta.value = u + "?url=" + trim(s);
    }
    </script> <textarea id="ta"> </textarea> <br/> 
    <input type='button' value='提交' onclick='Replace()'/> 
      

  8.   

    谢谢上楼
    但还是有点问题!当然输入三个图片地址测试:
    http://www.tom.com/001.jpg
    http://www.tom.com/002.jpg
    http://www.tom.com/003.jpg
    提交后只改变第一个图片地址:
    http://www.yi3.cn/tu.asp?url=http://www.tom.com/001.jpg
    http://www.tom.com/002.jpg
    http://www.tom.com/003.jpg
    我想要全部含有http://的都加上http://www.yi3.cn/tu.asp?url=
      

  9.   

    如果表单中的值http://的值已经加上http://www.yi3.cn/tu.asp?url=则就不用再加上http://www.yi3.cn/tu.asp?url=这个效果你是实现了
      

  10.   

    那是肯定的,你还得用split拆分var s = ta.value; 
    才可以!
      

  11.   

    var s = ta.value; 
    你输入多少个都当作一个来处理了!
      

  12.   

    下面的示例演示了 JavaScript中split函数方法的用法。 function SplitDemo(){
     var s, ss;
     var s = "The rain in Spain falls mainly in the plain.";
     // 在每个空格字符处进行分解。
     ss = s.split(" ");
     return(ss);

    给你个例子
      

  13.   

     如果你用的是回车,那回车用的是:\n  或者 \x0d这是JS里面用的
      

  14.   


    <script> 
    function trim(str){
        return str.replace(/\s*((\S+\s*)*)/,"$1").replace(/((\s*\S+)*)\s*/,"$1");
    }
    function Replace() 

        var   ta=document.getElementById("ta");
        var s = trim(ta.value); 
        var u = "http://www.yi3.cn/tu.asp"
        var a = s.match(/^(http|https):\/\/(([A-Z0-9]\w*)(\.[A-Z0-9]\w*)+)(:(\d+))?\/?(([A-Z0-9]\w*)(\.[A-Z0-9]\w*)*)/img);
        var res = "";
        for(var i=0,len=a.length;i<len;i++){
           s = trim(a[i]);
           if(s.indexOf("u")==-1)
                 if(res)res += "\n";
    res += u + "?url=" + s;
        }
        if(res) ta.value = res;
    }
    </script> <textarea id="ta"> </textarea> <br/> 
    <input type='button' value='提交' onclick='Replace()'/> 
      

  15.   

    多谢谢菜农
    还是有点问题
    这个输入三个图片地址后,是全部可以加http://www.yi3.cn/tu.asp?url=http://www.yi3.cn/tu.asp?url=http://www.tom.com/001.jpg
    http://www.yi3.cn/tu.asp?url=http://www.tom.com/002.jpg
    http://www.yi3.cn/tu.asp?url=http://www.tom.com/003.jpg
    但是当然输入:
    http://www.yi3.cn/tu.asp?url=http://www.tom.com/001.jpg
    http://www.yi3.cn/tu.asp?url=http://www.tom.com/002.jpg
    http://www.yi3.cn/tu.asp?url=http://www.tom.com/003.jpg
    就变成:
    http://www.yi3.cn/tu.asp?url=http://www.yi3.cn/tu.asphttp://www.yi3.cn/tu.asp?url=http://www.yi3.cn/tu.asphttp://www.yi3.cn/tu.asp?url=http://www.yi3.cn/tu.asp这个效果又没实现
    如果表单中的值http://的值已经加上http://www.yi3.cn/tu.asp?url=则就不用再加上http://www.yi3.cn/tu.asp?url= 
      

  16.   

    function Replace() 

        var   ta=document.getElementById("ta");
        var s = ta.value; 
        var u = "http://www.yi3.cn/tu.asp"
        if(isURL(s) && s.indexOf("u")==-1)
           ta.value = u + "?url=" + trim(s);
    }
    </script>
    跟这个结合!明白了吗?
      

  17.   

     if(s.indexOf("u")==-1)
                 if(res)res += "\n";
            res += u + "?url=" + s;
    var   u   =   "http://www.yi3.cn/tu.asp" 
            if(isURL(s)   &&   s.indexOf("u")==-1) 
                  ta.value   =   u   +   "?url="   +   trim(s); 

    你看看这2个区别在哪??
    我教你看你都不看???
      

  18.   


    <script> 
    function trim(str){
        return str.replace(/\s*((\S+\s*)*)/,"$1").replace(/((\s*\S+)*)\s*/,"$1");
    }
    function Replace() 

        var   ta=document.getElementById("ta");
        var s = trim(ta.value); 
        var u = "http://www.yi3.cn/tu.asp"
        var a = s.match(/^(http|https):\/\/(([A-Z0-9]\w*)(\.[A-Z0-9]\w*)+)(:(\d+))?\/?(([A-Z0-9]\w*)(\.[A-Z0-9]\w*)*)(\??\w+=?[\s\S\w\W]*)?/img);
        var res = "";
        for(var i=0,len=a.length;i<len;i++){
           s = trim(a[i]);
           if(s.indexOf(u)==-1){
                 if(res)res += "\n";
    res += u + "?url=" + s;
           }
        }
        if(res) ta.value = res;
    }
    </script> <textarea id="ta"> </textarea> <br/> 
    <input type='button' value='提交' onclick='Replace()'/> 
      

  19.   

    各位,能不能再指点一下!
    再帮写段代码:
    非常感谢!
    --------------------------------------如果表单中的图片地址已经含有这个域名: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=

      

  20.   

    我刚来到csdn,还不知道怎么加分,要不我会给最多的分。
      

  21.   

    呵呵,我有点拙见,就是做2个正则来判断
    做法基本于上面没太大的区别,就是多加了一个else判断
      

  22.   

    我问了几个问题了,散了分了。抱歉
    csdn还真有意思。
      

  23.   

    把 var u = "http://www.yi3.cn/tu.asp"
    改成:var u = "http://www.yi3.cn"
    试试。
      

  24.   

    把   var   u   =   "http://www.yi3.cn/tu.asp" 
    改成:var   u   =   "http://www.yi3.cn" 输入:
    http://www.tom.com/001.jpg 
    http://www.tom.com/002.jpg 
    http://www.tom.com/003.jpg 提交后:
    http://www.yi3.cn?url=http://www.tom.com/001.jpg
    http://www.yi3.cn?url=http://www.tom.com/002.jpg
    http://www.yi3.cn?url=http://www.tom.com/003.jpg不正常!