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

时间:2012-02-19 21:14:22

标签: javascript jquery wordpress

尝试删除正在返回imgurl的完整网址: 通常会返回http://localhost/wordpress/wp-content/uploads/filename.jpg之类的内容 或http://localhost/wordpress/wp-content/uploads/images/filename.jpg

我想剥离除filename.jpg之外的所有内容并将其返回 ahng_photos_upload_image。剥离一切到最后的正斜线。 我怎么能用Jquery做到这一点?

window.send_to_editor = function(html) {
imgurl = jQuery('img',html).attr('src');
jQuery('#ahng_photos_upload_image').val(imgurl);
tb_remove();
}

8 个答案:

答案 0 :(得分:24)

你不需要jQuery,只需普通的旧JavaScript即可:)

alert('http://localhost/wordpress/wp-content/uploads/filename.jpg'.split('/').pop());​​

在你的情况下:

var filename = imgurl.split('/').pop();

答案 1 :(得分:2)

你可以使用正则表达式来实现这个目的。

var file = imgUrl.replace(/^.*[\\\/]/, '');

现在文件只包含文件名..

答案 2 :(得分:1)

如果你非常确信这些网址没有像哈希或参数这样的有趣内容,那么像这样的正则表达式会这样做:

var filename = imgurl.replace(/^.*\/([^/]*)$/, "$1");

另外:不要忘记使用var声明“imgurl”,如果你的jQuery版本,你应该可能使用.prop()而不是.attr()是1.6或更新:

var imgurl = jQuery('img', html).prop('src');

jQuery也在内部将函数的双参数形式转换为:

var imgurl = jQuery(html).find('img').prop('src');

所以你不妨用这种方式编码。

答案 3 :(得分:1)

另一个选择:

var filename = imgurl.substring(imgurl.lastIndexOf('/') + 1);

JS Fiddle demo

答案 4 :(得分:0)

试试这个:

imgurl.split('/').slice(-1);

修改:查看the version of @Andy使用pop()方法的人,后者比slice(-1)更快。

答案 5 :(得分:0)

你有

var filename = imgurl.split('/').slice(-1);
祝你好运!

答案 6 :(得分:0)

请注意,如果您不知道是否有正斜杠或反斜杠,那么最好使用RE版本的分割:

"path".split(/[\/\\]/).slice(-1)

答案 7 :(得分:0)

当您的文件名类似于./file.jpg

时,这个答案将起作用
var extension = fileName.slice((fileName.lastIndexOf(".") - 1 >>> 0) + 2);
var baseName = fileName.replace(/^.*\/([^/]*)$/, "$1");
var path = fileName.replace(/(^.*\/)([^/]*)$/, "$1");