Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除完整路径,仅保留文件名_Javascript_Jquery_Wordpress - Fatal编程技术网

Javascript 删除完整路径,仅保留文件名

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(); }

正在尝试删除返回到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();
}

您不需要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");