快速正则表达式获取路径

时间:2010-01-29 11:20:37

标签: javascript regex

我需要使用regExp

提取文件的完整路径

mydomain.com/path/to/file/myfile.html - > mydomain.com/path/to/file/

/mypath/file.txt - > /mypath/

4 个答案:

答案 0 :(得分:4)

没有RegExp应该更快:

path.substr(0, path.lastIndexOf('/') + 1);

示例:

var path = "mydomain.com/path/to/file/myfile.html";
path.substr(0, path.lastIndexOf('/') + 1);
"mydomain.com/path/to/file/"

var path = "/mypath/file.txt";
path.substr(0, path.lastIndexOf('/') + 1);
"/mypath/"

var path = "file.txt";
path.substr(0, path.lastIndexOf('/') + 1);
""

答案 1 :(得分:3)

试试这个:

"mydomain.com/path/to/file/myfile.html".replace(/[^\/]*$/, "")
"/path/file.txt".replace(/[^\/]*$/, "")

但你也可以通过拆分来实现没有正则表达式:

"mydomain.com/path/to/file/myfile.html".split("/").slice(0, -1).join("/")+"/"
"/path/file.txt".split("/").slice(0, -1).join("/")+"/"

答案 2 :(得分:1)

这个正则表达式应该这样做:

^(?:[^\/]*\/)*

答案 3 :(得分:0)

这有效:

var file="mydomain.com/path/to/file/myfile.html";    
var match=/^(.*?)[\w\d\.]+$/g.exec(file);
var path=match[1];