js提取Markdown文本中的摘要 / 网络研习社#59

in #cn4 years ago (edited)

steemjiang.jpg

在上一篇中提取了图片,单独显示。正文的摘要也要提取出来以做展示,如上图所示。

不多说,直接到解决方案:

参考

abstractFn(res){
  if(!res){
    return ''
  }else{
    let str=res.replace(/(\*\*|__)(.*?)(\*\*|__)/g,'')          //全局匹配内粗体
            .replace(/\!\[[\s\S]*?\]\([\s\S]*?\)/g,'')           //全局匹配图片
            .replace(/\([\s\S]*?\)/g,'')                         //全局匹配连接
            .replace(/<\/?.+?\/?>/g,'')                         //全局匹配内html标签
            .replace(/(\*)(.*?)(\*)/g,'')                        //全局匹配内联代码块
            .replace(/`{1,2}[^`](.*?)`{1,2}/g,'')                //全局匹配内联代码块
            .replace(/```([\s\S]*?)```[\s]*/g,'')               //全局匹配代码块
            .replace(/\~\~(.*?)\~\~/g,'')                         //全局匹配删除线
            .replace(/[\s]*[-\*\+]+(.*)/g,'')                    //全局匹配无序列表
            .replace(/[\s]*[0-9]+\.(.*)/g,'')                    //全局匹配有序列表
            .replace(/(#+)(.*)/g,'')                            //全局匹配标题
            .replace(/(>+)(.*)/g,'')                            //全局匹配摘要
            .replace(/\r\n/g,"")                                //全局匹配换行
            .replace(/\n/g,"")                                  //全局匹配换行
            .replace(/\s/g,"")                                  //全局匹配空字符;
    return str.slice(0,180)
  }
}