0

标记看起来像这样......

<img id="holder" src="http://www.domain.com/images/title.size.jpg">

我的 jQuery 看起来像这样....

var image = jQuery('img#holder').attr('src');

我得到了回报http://www.domain.com/images/title.size.jpg,但我真的只是想要http://www.domain.com/images/title.jpg。我的问题是....从文件名(和一个句点)中的句点之间删除所有内容的最佳方法是什么,这样我就剩下了http://www.domain.com/images/title.jpg

回顾一下:只需要 JS 来检查最后一个斜线之后是否有多个句点,如果是,则找到斜线后第一个句点的位置和最后一个句点的位置,并删除中间的块。

4

4 回答 4

2

我猜size是一个数字,而不是一个字符串。如果是这样,请使用以下代码:

var image = jQuery('img#holder').attr('src');
image = image.replace(/\.([0-9]+\.)/, '.');

有了这段代码www.example.com/image.640.jpg就变成了www.example.com/image.jpg.

如果 size 有这样的语法640x480使用这个(注意'x'):

image = image.replace(/\.([0-9x]+\.)/, '.');
于 2013-05-16T18:07:38.473 回答
1
function removebetweendots(str)
{
    var arr = str.split("/");
    var filename = arr[arr.length-1];
    var n = filename.split(".").length; 
    var newfilename;
    if(n>2)
        newfilename = filename.split(".")[0] +"."+ filename.split(".")[n-1];
    else
        newfilename = filename;
    arr[arr.length-1] = newfilename;
    return arr.join("/");
}

removebetweendots("http://www.domain.com/images/title.size.jpg");
// returns .. "http://www.domain.com/images/title.jpg"

removebetweendots("http://www.domain.com/images/title.size.moredata.jpg");
// returns .. "http://www.domain.com/images/title.jpg"
于 2013-05-16T18:09:26.977 回答
0

答案是使用正则表达式。

var getSize = new RegExp({},"");

{} 需要是您想要匹配的任何内容。我不知道它是否会是.size。每次或一个数字。

于 2013-05-16T18:10:22.157 回答
0
url = jQuery('img#holder').attr('src'); //the image url
url_parts = url.split('/'); //parts of url broken by '/'    
extensions = url_parts.pop().split('.'); //extensions in url (last elements in url_parts broken by '.')

if(extensions.length > 2) //if more than two extensions
   url = url_parts.join('/')+'/'+extensions[0]+'.'+extensions.pop() //replace url by joined non extension parts of orignal url, /, first and last extension

alert("My filtered url: "+url)

工作http://jsfiddle.net/5jLbs/

于 2013-05-16T18:17:54.797 回答