存放一些我常用的正则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
},