记录,常用正则替换、及小方法

51 阅读1分钟

存放一些我常用的正则js~~~

有个需求,下载文件。

文件名是接口返回的,且放在content-disposition中,下面这个方法可以从里面匹配读取。

getFileName(res) {
  let fileName = ''
  const contentDisposition = res?.headers['content-disposition'];
  if (contentDisposition) {
    // 匹配filename的值
    const match = contentDisposition.match(/filename="?(.+?)"?$/);
    fileName = match ? decodeURIComponent(match[1]) : false;
    // 去掉文件格式,匹配文件名中的最后一个点及其之后的内容 替换为空,即文件扩展名部分
    fileName = fileName.replace(/\.[^.]+$/, '')
  }
  return fileName
},

正则匹配,获取文件格式

const fileName = ''
const regex = /\.[^.]+$/ // 正则表达式
const match = fileName.match(regex) // 使用match方法匹配文件格式

方法,获取文件类型,匹配是否是图片


checkIMG(fileName) {
  const IMG_TYPES = ['JPG', 'PNG', 'JPEG', 'HEIC']
  const regex = /\.[^.]+$/ // 正则表达式
  const match = fileName.match(regex) // 使用match方法匹配文件格式

  // 获取匹配到的内容,并且去掉点字符
  const suffix = match ? match[0].substring(1).toUpperCase() : ''
  return IMG_TYPES.includes(suffix)
},

方法,正则匹配字符串中的Signature字段,并替换为需要的字段

    processSignature(url) {
      // 使用正则表达式匹配 Signature 参数值并替换为 encodeURIComponent 后的值
      const processedUrl = url.replace(/Signature=([^&]*)/, (match, signature) => {
        return `Signature=${encodeURIComponent(signature)}`
      })
      return processedUrl
    },