var v = "www.abc.com"

function abc(s){
return s.replace(/((ht|f)tp(s|))\:\/\/[\-\w.:]+(\/[^ \n\r\'\"\[\]]+|)/gi,
     function(match)
     {
       return ['<a href="'+match+'">',match,'</a>'].join('');
     } 
    );
};
   
v = abc(v);
alert(v);
通过一个js函数把一段文本中的链接自动转换为a标签。
上面的代码有点问题,v = "www.abc.com"处理不正确,v="abc"也不正确。
帮忙改改,重写也好。
    

解决方案 »

  1.   

    <script type="text/javascript">
    var v = "www.abc.com"
    var reg=/((ht|f)tp(s|))?(\:\/\/)?[\-\w.:]+(\/[^ \n\r\'\"\[\]]+|)/gi;
    v=v.replace(reg,s);
    alert(v);
    function s(x){
    return "<a href="+x+">"+x+"</a>"
    }
    </script>
    这样试试
      

  2.   


    var v = "DOCTYPE html PUBLIC" 这样不正确
      

  3.   

    肯定得啊  正则只设了字母数字和下划线  没要求开头必须是www  几乎符合\w就能匹配了 
      

  4.   

        var v = "www.abc.com/aa DOCTYPE html PUBLIC"
        var reg = /((ht|f)tps?\:\/\/)?[^\.]+(\.[^\.\s]+)+/gi;
        v = v.replace(reg, s);
        alert(v);
        function s(x) {
            if (!/^(ht|f)tps?\:\/\//i.test(x)) x = 'http://' + x;
            return "<a href=" + x + ">" + x + "</a>"
        }