只获取所选输入文件的名称

时间:2016-04-21 14:50:22

标签: javascript regex

我试图仅使用此正则表达式获取所选文件的名称:

var regex = /.*(\/|\\)/;

但它仅适用于某些情况,您可以在this fiddle中找到完整示例:

var regex = /.*(\/|\\)/;

var path1 = 'C:\fakepath\filename.doc'.replace(regex, ''),
    path2 = 'C:\\fakepath\\filename.doc'.replace(regex, ''),
    path3 = '/var/fakepath/filename.doc'.replace(regex, '');

如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

你的问题不在你想象的地方。

您的问题是写your literal string

'C:\fakepath\filename.doc'不会生成\个字符,而会生成\f个字符(换页)。

这就是说,当你想要提取字符串时不要使用replace,而是match,这样你就可以定义你想要的而不是你想要的东西:

var regex = /[^\/\\]+$/;

var path1 = 'C:\\fakepath\\filename.doc'.match(regex)[0],
    path2 = 'C:\\fakepath\\filename.doc'.match(regex)[0],
    path3 = '/var/fakepath/filename.doc'.match(regex)[0];
相关问题