我想从 url 获取文件名。我正在这样做:
console.log(url)
const filename = url.match(/([^\/]+)(?=\.\w+$)/)[0]
return filename
但是我收到TypeError: Cannot read property '0' of null
。这很奇怪,因为 console.log(url)
输出 文件:http://ac-0uhksb6K.clouddn.com/9710016c8dfcf6ae1e9d.jpg?imageView2/2/w/4096/h/2048/q/100/format/jpg
可能是什么问题?
最佳答案
您的正则表达式希望文件名及其扩展名成为 URL 的最后部分,而问题中的 URL 也包含查询参数。为了考虑到这些,请在前瞻中添加 (?:$|\?)
替换:
[^\/]+(?=\.\w+(?:$|\?))
注意:捕获组是多余的,因此也将其删除。
关于javascript - 获取无法读取正则表达式中 null 的属性 '0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39035044/