假設(shè)我們有如下一段字符串秧荆,我們需要從中提取出鏈接并給它加上a標(biāo)簽并重新返回整段字符串兴喂。
var str="urlPahttp://www.baidu.comrser.hostname我www.baidu.com家www.baidu.com哈ftp://www.baidu.com大https://www.baidu.com家";
那么我們可以用以下實(shí)現(xiàn)思路
// 匹配鏈接的正則表達(dá)式
var urlReg= /(http:\/\/|ftp:\/\/|https:\/\/|www.)[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/g;
var array = url.match(urlReg);
// 設(shè)置!!為臨時(shí)占位符
var rpStr = url.replace(urlReg,'!!')
function insertLink(el, i, arr) {
//匹配協(xié)議攻询,因?yàn)閂uejs會(huì)對(duì)href屬性自動(dòng)加上' http:// '
if(el.match('http://') || el.match('ftp://') || el.match('https://')) {
// console.log('yes')
var link = ('<a href=\"'+el+'\">'+el+'</a>');
}else {
// console.log('false')
var link = ('<a href=\"http:\/\/'+el+'\">'+el+'</a>');
}
// console.log(rpStr)
// console.log(links)
// 將字符串里的!! 替換為link的內(nèi)容并重新賦值給 rpStr
rpStr = rpStr.replace('!!',link)
// console.log('result',rpStr)
return rpStr
}
array.forEach(insertLink);
console.log(rpStr)