就是分享下自己的解题思路,很基础的写法,适合像我一样的新手看看,比较能看懂
为了能通过全部测试案例,也是写了好久,有太多种情况了:前后空格(可以trim函数)、不符合条件就照常返回(写个正则判断下就好)、多个可用链接(正则写的好,用起来没烦恼,我的正则也是从题解里抄来的,一开始不能理解为什么com|cn要好几次,后面看到测试案例就懂了,g当然是为了找到多个可用链接了)
反正别人的题解可以借鉴一下一些自己还不熟悉的部分,比如我不太会难的正则表达式,就借鉴了一下,其他部分也没啥难点,遇bug解决bug就好,好事多磨!
// 获取文本内容            
var div =  document.getElementById('jsContainer')            
var text = div.innerText.trim()            
// 选择正确的正则表达式            
// 通常情况下的符合条件的正则表达式            
var reg = new RegExp(/(https?:\\/\\/)?(www\\.\\w+(\\.(com|cn))*([?]\\w+=\\w*(&\\w+=\\w*)*)?(#\\w+)?)/g)            
// www.开头的正则表达式,等等要替换http://www.XXXXXX            
var reg1 = new RegExp(/^(www\\.)/)            
// 如果不符合上述格式就不做任何操作            
if(!reg.test(text)){                
	return           
}            
// 提取相关链接            
text = text.match(reg)                        
var str = ''           
for(let i =0;i<text.length;i++){                            
// 先把不符合的格式转换为统一合格的格式                
	if(reg1.test(text[i])){                    
	// 要接受replace的返回值                   
	  let text1 =  text[i].replace('www.','http://www.')                   
	  str  += `<a target=\"_blank\" href=\"${text1}\">${text[i]}</a>`              div.innerHTML = str              
	}              
	else{                    
		str  += `<a target=\"_blank\" href=\"${text[i]}\">${text[i]}</a>`           div.innerHTML = str              
	}                                
}            
}