JavaScript-javascript批量替换及筛选链接

JavaScript-javascript批量替换及筛选链接

浮生未歇 发布于 2017-09-25 字数 224 浏览 1264 回复 2

有一个字符串urls变量(通过服务端返回过来的字符串),里面包含有http、file、ftp、mailto形式的链接, 如何批量为每个链接加上html链接,比如:

http://www.domain.com/1.html

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想挽留 2017-09-26 2 楼

[[], [], [], []] 数组0,1,2,3分别对应的http,file,ftp,mailto

 ReplaceUrls = function(urls) {
if (typeof urls !== 'string') throw new Error('urls is invalid');
this.urls = urls.split(",");
this.type = ["http", "file", "ftp", "mailto"];
this.urls_arr = [[], [], [], []];
this.urls_href = [[], [], [], []];
};

ReplaceUrls.prototype = {
display: function() {
for (_url in this.urls){
for (type in this.type){
if(this.urls[_url].indexOf(this.type[type]) > -1){
this.urls_arr[type] = this.urls[_url];
this.urls_href[type] = '<a href="'+this.urls[_url]+'">'+this.urls[_url]+'</a>';
}
}
}
}
};

var replace_urls = new ReplaceUrls('http://www.domain.com/1.html, file://www.domain.com/1.html, ftp://www.domain.com/1.html, mailto://www.domain.com/1.html');
replace_urls.display();
alert(replace_urls.urls_arr)
alert(replace_urls.urls_href)

晚风撩人 2017-09-25 1 楼

这样行不

 <script>
function replaceURLs(urls) {
var urlArr = urls.split(",");
var urlLen = urlArr.length;
var retArr = [];
for(var i=0;i<urlLen;i++)
{
var type = urlArr[i].substring(0,urlArr[i].indexOf(':'));
var newStr = '<a href="'+urlArr[i]+'">'+urlArr[i]+'</a>';
if(!retArr[type]) retArr[type] = [];
retArr[type].push(newStr);
}
return retArr;
}

var urlArr = replaceURLs('http://www.domain.com/1.html,http://www.domain.com/2.html,file://www.domain.com/1.html,ftp://www.domain.com/1.html,mailto:www.domain.com,mailto:www.domain2.com');
alert(urlArr['http']);
alert(urlArr['file']);
alert(urlArr['mailto']);
</script>