需求
在做新闻详情页时,产品需求要在关键字文本内容上添加链接。据说有助于SEO。
解决
最开始想到的办法是在富文本编辑器中添加a标签跳转,这是最简单最方便的办法。马上改完之后提交。
但是需求又来了,有些文章并不是都由富文本编辑器生成的,那就无法通过编辑器提添加了,这。。。
最终版
第一时间想到用正则去替换,虽然正则一直都有用,但是没有仔细去看replace的具体参数,之前一直用它替换文本,在文档上有这样一句话
str.replace(regexp|substr, newSubStr|function)
第二个参数是可以是回调函数,顿时感觉自己太不认真,没仔细看文档。
let str = innerHtml.replace(/#.*?#/gi,(str)=>{
return `<a href="">${str}</a>`
})