Javascript 删除完整路径,仅保留文件名
正在尝试删除返回到imgurl的完整url: 通常返回类似于 或 我想去掉除filename.jpg之外的所有内容并将其返回到 照片上传图片。去掉所有的东西直到最后一个正斜杠。 如何使用Jquery实现这一点Javascript 删除完整路径,仅保留文件名,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,正在尝试删除返回到imgurl的完整url: 通常返回类似于 或 我想去掉除filename.jpg之外的所有内容并将其返回到 照片上传图片。去掉所有的东西直到最后一个正斜杠。 如何使用Jquery实现这一点 window.send_to_editor = function(html) { imgurl = jQuery('img',html).attr('src'); jQuery('#ahng_photos_upload_image').val(imgurl); tb_remove(); }
window.send_to_editor = function(html) {
imgurl = jQuery('img',html).attr('src');
jQuery('#ahng_photos_upload_image').val(imgurl);
tb_remove();
}
您不需要jQuery,只需要简单的旧JavaScript即可:) 就你而言:
var filename = imgurl.split('/').pop();
您可以使用正则表达式来实现这一点
var file = imgUrl.replace(/^.*[\\\/]/, '');
现在,该文件将只包含文件名 如果您非常确信URL没有散列或参数之类的有趣内容,那么像这样的正则表达式就可以了:
var filename = imgurl.replace(/^.*\/([^/]*)$/, "$1");
另外:不要忘记用var
声明“imgurl”,如果您的jQuery版本是1.6或更高版本,您可能应该使用.prop()
而不是.attr()
:
var imgurl = jQuery('img', html).prop('src');
此外,jQuery在内部将函数的两个参数形式转换为:
var imgurl = jQuery(html).find('img').prop('src');
因此,您不妨这样编码。试试这个:
imgurl.split('/').slice(-1);
编辑:看看谁在使用pop()
方法,后者比slice(-1)
更快
var filename = imgurl.split('/').slice(-1);
祝你好运 还有一个选择:
var filename = imgurl.substring(imgurl.lastIndexOf('/') + 1);
.请注意,如果您不知道是否有向前或向后斜杠,最好使用重新版本的拆分:
"path".split(/[\/\\]/).slice(-1)
当您的文件名为./file.jpg时,下面是一个答案
var extension = fileName.slice((fileName.lastIndexOf(".") - 1 >>> 0) + 2);
var baseName = fileName.replace(/^.*\/([^/]*)$/, "$1");
var path = fileName.replace(/(^.*\/)([^/]*)$/, "$1");
substring(txt.lastIndexOf(“/”)+1)就像一个符咒。谢谢我必须搜索一下split()和pop()是如何工作的。@实际上,linux中的路径是
/
。它们在windows中是`的。但这也没关系,因为我们谈论的url总是
/`而不是路径。@Andy如果路径来自url,它可能会工作,但是当你试图上传文件时,输入值会是:“C:\fakepath\filename.txt”(在我的本地主机上用Chromium在Ubuntu上测试)。因此,出于这个原因,我个人更喜欢正则表达式。
var extension = fileName.slice((fileName.lastIndexOf(".") - 1 >>> 0) + 2);
var baseName = fileName.replace(/^.*\/([^/]*)$/, "$1");
var path = fileName.replace(/(^.*\/)([^/]*)$/, "$1");