最近在做案例的时候,发现豆瓣的电影图片请求不到了,但是图片链接放到浏览器中是可以正常打开的,调试了很久,才发现,原来是豆瓣把你请求时候的url给你改了,比方说你原来的url是这个:http://img4.doubanio.com/view/photo/s_ratio_poster/public/p2614997041.webp,请求的时候他会自动变成这个:http://img3.doubanio.com/view/photo/s_ratio_poster/public/p2614997041.webp,区别就是前面的域名,img4.douban.com
变成 img3.douban.com
,导致图片加载不出来,而且实际操作中,原始url也是不同的,有的是 img1
加载不出,有的是 img3
加载不出,然后我就试了下,发现如果统一改成 img4
就都可以加载出来了。
那么方法也很简单,就是用 replace() 方法,但是如何去匹配不同数字的 url 就成了问题,这时候就想起了正则表达式,通过查资料发现,可以这么去匹配数字,就是将数字用 d
代替,比方说:
url = 'http://img3.doubanio.com/view/photo/s_ratio_poster/public/p2614997041.webp'
newUrl = url.replace(/imgd/,'img4')
通过这么操作,返回来的 newUrl 就是:http://img4.doubanio.com/view/photo/s_ratio_poster/public/p2614997041.webp 了。
这样的好处是不管你是 img1
还是 img9
都会变成 img4
。
问题解决了,下面是常用的一些正则表达式:
直接看这篇博客吧:常用的正则表达式