<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>试了一下这种方法。当var v = "DOCTYPE html PUBLIC"时,不正确。有没有其他办法。
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>试了一下这种方法。当var v = "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>"
}
不好意思。还是有点缺陷。
输入
var v = "<a href=baidu.com>baidu.com</a> com DOCTYPE html PUBLIC"
输出
<a href=http://<a href=baidu.com>baidu.com</a>>http://<a href=baidu.com>baidu.com</a></a> com DOCTYPE html PUBLIC文本中可能有a标签.
,reg = /((ht|f)tps?\:\/\/)?[^\.\s]+(\.[^\.\s]+)+/gi
, as = []
//收集as标签替换为替代的特殊字符串
v = v.replace(/<a[^>]+>[\s\S]*?<\/a>/ig, function ($0) { as[as.length] = $0; return '__AS' + (as.length - 1) + '__' });
v = v.replace(reg, s);
//反替换回来
for (var i = 0, j = as.length; i < j; i++) v = v.replace(new RegExp('__AS' + i + '__', 'g'), as[i]);
alert(v);
function s(x) {
return "<a href=" +(/^(ht|f)tps?\:\/\//i.test(x)?x:'http://'+ x) + ">" + x + "</a>"
}