[英]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.