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。私の質問は....ファイル名だけのピリオド(および1つのピリオド)の間からすべてを削除する最良の方法は何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 に答える