繁体   English   中英

删除字符串中最后一个正斜杠之前的数据

[英]Removing data before the last forward slash in a string

我在变量中有一个文件位置,而我要做的就是从最后一个/之后的值中获取值。

例如,我的变量(名为myfile )的内容看起来像/home/tony/files/test.pdf/tmp/admin.doc 我只想转到变量的末尾并向后退,直到到达/ ,然后从该点开始取值。

有任何想法吗?

您可以使用String.substring()String.lastIndexOf()完成此操作:

var index = myfile.lastIndexOf('/');
if(index != -1)
{
    var newStr = myfile.substring(index + 1);
}

这样做的另一种方法是使用正则表达式:

var newStr = myfile.replace(/^.*\/(?=[^\/]*$)/, '');

与正则表达式

 var filePath = '/home/tony/files/test.pdf'; var fileName = filePath.match(/[^\\/]*$/); document.write(fileName); 

没有正则表达式

 var filePath = '/home/tony/files/test.pdf'; var fileName = filePath.split('/').pop(); document.write(fileName); 

var location = "/home/time/json.pdf";
var parts = location.split('/');
var index = parts.length-1;
alert(parts[index]);

可以做到,但是使用正则表达式或子字符串,我想您可以更快地完成。

如果这样写,则没有任何目录路径的文件名将保持不变。

myfile.substring(myfile.lastIndexOf('/')+1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM