是否有一种方法,我可以得到的最后一个值(基于'\'符号)从一个完整的路径?
例子:
C:\Documents and Settings\img\recycled log.jpg
在这种情况下,我只想从JavaScript的完整路径中回收log.jpg。
是否有一种方法,我可以得到的最后一个值(基于'\'符号)从一个完整的路径?
例子:
C:\Documents and Settings\img\recycled log.jpg
在这种情况下,我只想从JavaScript的完整路径中回收log.jpg。
当前回答
路径来自哪个平台?Windows路径不同POSIX路径不同Mac OS 9路径不同RISC OS路径不同…
如果它是一个web应用程序,文件名可以来自不同的平台,那么就没有一个解决方案。然而,一个合理的尝试是同时使用'\' (Windows)和'/' (Linux/Unix/Mac和Windows上的另一种选择)作为路径分隔符。下面是一个非regexp版本的额外乐趣:
var leafname= pathname.split('\\').pop().split('/').pop();
其他回答
var filename = fullPath.replace(/^.*[\\\/]/, '')
这将处理两个\ OR / in路径
成功为你的问题编写脚本,完整测试
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<p title="text" id="FileNameShow" ></p>
<input type="file"
id="myfile"
onchange="javascript:showSrc();"
size="30">
<script type="text/javascript">
function replaceAll(txt, replace, with_this) {
return txt.replace(new RegExp(replace, 'g'), with_this);
}
function showSrc() {
document.getElementById("myframe").href = document.getElementById("myfile").value;
var theexa = document.getElementById("myframe").href.replace("file:///", "");
var path = document.getElementById("myframe").href.replace("file:///", "");
var correctPath = replaceAll(path, "%20", " ");
alert(correctPath);
var filename = correctPath.replace(/^.*[\\\/]/, '')
$("#FileNameShow").text(filename)
}
路径来自哪个平台?Windows路径不同POSIX路径不同Mac OS 9路径不同RISC OS路径不同…
如果它是一个web应用程序,文件名可以来自不同的平台,那么就没有一个解决方案。然而,一个合理的尝试是同时使用'\' (Windows)和'/' (Linux/Unix/Mac和Windows上的另一种选择)作为路径分隔符。下面是一个非regexp版本的额外乐趣:
var leafname= pathname.split('\\').pop().split('/').pop();
在Node.js中,你可以使用路径。basename方法
const path = require('path');
const file = '/home/user/dir/file.txt';
const filename = path.basename(file);
//=> 'file.txt'
function getFileName(path, isExtension){
var fullFileName, fileNameWithoutExtension;
// replace \ to /
while( path.indexOf("\\") !== -1 ){
path = path.replace("\\", "/");
}
fullFileName = path.split("/").pop();
return (isExtension) ? fullFileName : fullFileName.slice( 0, fullFileName.lastIndexOf(".") );
}