2017-06-21 5 views
1

ボタンをクリックすると、URLの最後の部分を取り込み、最後のセグメント文字列を1つ上の数字に置き換えます。例えば、img15.jpgからimg16.jpgへ。次のコードはURLの最後の部分を保存していますが、数字を反復する方法がわかりません。JavaScriptの文字列に次の数字を追加する方法

$('.next').on('click',function(){ 
     parts = modalContainer.find('img').attr('src'); 
     array = parts.split('/'); 

     lastsegment = array[array.length-1]; 

}) 

答えて

2

にあなたをintにのparseIntの変換文字列を使用します(lastsegmentが15の場合) Substring関数を使用して、あなたの例の数字だけを取得することができます "15"としてくださいその番号を数字+ 1で置きます。

var str = "img15.jpg"; 
var res = str.substring(3,str.length-4); 
alert('new file is: ' + str.replace(res,parseInt(res)+1)); 

は、あなたがの長さで終了しようとしている、例えば「IMG」は3つの文字を持って、ストリングにあなたが(どこを開始するために理解するために)ファイルの長さを知っておく必要があることを考慮してください文字列minous 4は、ファイルのドットと拡張子のために、例えば ".jpg"は4文字です。

ここでは一例でjsfiddleを持っている:あなたはパターンに一致し、グループ内の数字をキャプチャするREGEXを使用することができます

https://jsfiddle.net/6xdaenom/1/

+0

、それが仕事であり、それが問題になる文句を言わないように、ファイル名は静的です。解決済み – Mindfuc

0

結果は文字列

されている場合+1直接このような

lastsegment+=1 //return 151 

ので

parseInt(lastsegment)+1 
0

。その後、番号を増やして元の値に置き換えます。

以下のコードスニペットを確認してください。おかげでチームメイト

function getUrl() { 
 
    var url = "https://somewebsite.com/images/sunrise1.jpg"; 
 
    return url; 
 
} 
 

 
function getNextUrl(url) { 
 
    var regex = /(\S+)(\d+)(\.\w+)$/g; 
 
    var match = regex.exec(url); 
 
    var number = parseInt(match[2]); 
 
    number++; 
 
    regex.lastIndex = 0; 
 
    var nextUrl = url.replace(regex, "$1" + number + "$3"); 
 
    return nextUrl; 
 
} 
 

 
var url = getUrl(); 
 
var nextUrl = getNextUrl(url) 
 
console.log(nextUrl)

0
var lastsegment = 'img_or_whatever15.jpg'; 
var nextSegment = lastsegment .replace(/(\d+)/,function (g) { 
    return parseInt(g)+1; 
}); 
関連する問題