utils.js 984 B

123456789101112131415161718192021222324252627
  1. /** 是否是base64本地地址 */
  2. export const isBaseUrl = (str) => {
  3. return /^\s*data:(?:[a-z]+\/[\d+.a-z-]+(?:;[a-z-]+=[\da-z-]+)?)?(?:;base64)?,([\s\w!$%&'()*+,./:;=?@~-]*?)\s*$/i.test(str);
  4. };
  5. /** 是否是小程序本地地址 */
  6. export const isTmpUrl = (str) => {
  7. return /http:\/\/temp\/wx/.test(str);
  8. };
  9. /** 是否是网络地址 */
  10. export const isNetworkUrl = (str) => {
  11. return /^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w#%&+,./:=?@^~-]*[\w#%&+/=?@^~-])?$/.test(str);
  12. };
  13. // 下载指定地址图片, 如果不符合下载图片, 则直接返回
  14. export const downloadImgUrl = (url) => {
  15. const isLocalFile = isBaseUrl(url) || isTmpUrl(url) || !isNetworkUrl(url);
  16. return new Promise((resolve, reject) => {
  17. if (isLocalFile) {
  18. return resolve(url);
  19. }
  20. uni.downloadFile({
  21. url,
  22. success: (res) => resolve(res.tempFilePath),
  23. fail: reject
  24. });
  25. });
  26. };
  27. //# sourceMappingURL=utils.js.map