Javascript 正则表达式将文件名与扩展名匹配
Javascript regex match filename with extension
您好,我需要将 filnames 与扩展名匹配。
问题是路径可以同时是 unix 和窗口,因此由/或 '' 分隔,unix 也允许 . 在文件名中,所以 t.est.txt 也应该匹配。
我的代码 :
var regex = new RegExp('[''/]?([/'w+.]+/'w+)/'s*$');
var value = this.attachment.fileInput.dom.value;
console.log(value.match(regex));
console.log(regex.exec(value));
这个正则表达式在 rubular 中工作正常。但是由于某种原因,即chrome和Firefox与任何字符串都不匹配并返回null。
您可以在最后'
或/
之后抓取任何内容,例如:
var file = str.match(/[^''/]+$/)[0];
(请记住,文件并不总是需要扩展名(
虽然如果你真的想强制扩展匹配:
var file = str.match(/[^''/]+'.[^''/]+$/)[0];
请尝试以下语法:
var filename = (value.match(/[^''/]+'.[^''/]+$/) || []).pop();
对于以下示例,它应该可以正常工作:
"path/to/file.ext" --> "file.ext"
"path''to''file.ext" --> "file.ext"
"path/to/file.ext.txt" --> "file.ext.txt"
"path/to/file" --> ""
Credits 转到 RegeBuddy 的库以获取此片段:
if (/[^'''/:*?"<>|'r'n]+$/im.test(js)) {
// Successful match
} else {
// Match attempt failed
}
相关文章:
- TableExport jquery插件:文件名和扩展名问题
- 未捕获的类型错误:无法读取属性'addEventListener'的null chrome扩展名
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 从安卓设备将图像上传到服务器时,文件扩展名错误
- 有人能告诉我如何在cent-os中打开扩展名为.dat的FIle吗
- 如何从 URL 中获取文件名和扩展名
- 提取扩展名为JS的图像文件名
- 允许上传具有特定文件名和扩展名的文件
- 如何使用 AWS S3 预签名帖子指定带扩展名的文件名
- Javascript 正则表达式将文件名与扩展名匹配
- 带扩展名的文件名验证
- 将文件名替换为路径和扩展名
- 如何在一行JavaScript中添加文件名和文件扩展名之间的随机字符串
- 谷歌图表下载自定义的文件名和扩展名
- 使用multer在node.js(express)中保留上传后的图像文件名和扩展名
- 如何从单个正则表达式验证文件名和文件扩展名
- 使用浏览器将文件保存到本地系统,使用指定的文件名和扩展名html &没有服务器交互的Javascript
- 使用简单的正则表达式验证浏览器上传文件名和扩展名
- 将输出图像保存到另一个目录中,并使用新的文件名和扩展名
- 获取文件的扩展名,但无法获取文件名