jquery中的正则表达式来获取图像文件名

时间:2011-02-23 08:32:11

标签: jquery jquery-selectors

我想用jquery与图像的src分别提取带有路径及其扩展名的文件名。

例如:

<img src="images/cat/kitty.gif" id="myimg" />

我需要从上面的代码中获取“images / cat / kitty”和“.gif”。

我该怎么办?

4 个答案:

答案 0 :(得分:5)

您只需使用attr方法:

$('#image_id').attr('src');

如果您想单独使用名称和扩展名,可以执行以下操作:

var arr = $('#image_id').attr('src').split('.');
alert(arr[0]);    // name
alert(arr[1]);    // extension

答案 1 :(得分:5)

仅提取文件名:

    var name = $('#myimg').attr("src");
    var parts = name.split('/');
    name = parts[parts.length-1];

答案 2 :(得分:4)

不需要正则表达式。使用.split()

var ret = $('#myimg').attr('src').split(/\./);

console.log(ret[0]);  // === 'images/cat/kitty'
console.log(ret[1]);  // === 'gif'

答案 3 :(得分:1)

如果您有一个使用多个“。”的复杂图像路径。例如 -

http://website.com/app/folder/imagemanager.php../../../user_images/2982034/images/image.png

虽然您可以事先清理路径,但如果没有,可以尝试使用jQuery -

// Get the source
var image_src = $(el).attr('src');

// Get the extension. As mentioned above, using split() and pop() 
var extension = image_src.split('.').pop();

// Get just the path. Replace the extension with ''
var path = image_src.replace('.'+extension,'');