js使用正则提取Markdown文本中的图片 / 网络研习社#58

in #cn4 years ago

reg.jpg

需求:在一段Markdown文本中提取出图片。比如:Steem中的图片都是直接存在'post.body'中的,如果想要单独显示,则需要使用正则提取出来。

正则表达式
参考

let reg = /\!\[.*?\)/  
//提取第一张图片格式:![]()
//以'!['开始,以')'结尾,中间任意个字符,加'?'表示惰性匹配(碰到第一个')'就结束)
// let reg = /\!\[.*?\)/g //加'g'全局匹配,提取所有的图片链接

let str= "![ipfs](https://cdn.steemitimages.com/DQ4dtGLyG3AZr9Nzmm/ipfs3.jpg)↵↵在上一篇《零代
码用IPFS做文件服务器》中启动了IPFS网络,![text](https://cdn.steeTFsbjap2VtZr9Nzmm/ipfs9.jpg)至少
看起来简单。[星空笔记](https://starnote.github.io)就不错!"

let a = str.match(reg)
if(a ===null){  //如查没有图片,直接返回
  return
}
console.log(1234, a[0])
//"![ipfs](https://cdn.steemitimages.com/DQ4dtGLyG3AZr9Nzmm/ipfs3.jpg)"
let reg2= /https:\/\/.*\w/  //从md中提取链接
let res = a[0].match(reg2)
console.log(23456, res[0])
// "https://cdn.steemitimages.com/DQ4dtGLyG3AZr9Nzmm/ipfs3.jpg"
Sort:  

之前我也是要提取图片地址,也用了类似的方法
@tipu curate

哈,村长,握个爪!