如何在JavaScript中添加下一个数字到字符串

问题描述:

点击按钮时,我想取掉网址的最后部分,并用上一个数字替换最后一个字符串。例如从img15.jpg到img16.jpg。以下代码保存了url的最后部分,但我不确定如何迭代数字。如何在JavaScript中添加下一个数字到字符串

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

     lastsegment = array[array.length-1]; 

}) 

你可以使用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一个例子:

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

+0

感谢队友,这是工作,文件名是静态的,所以它不会是一个问题。解决了 – Mindfuc

结果是字符串

,如果你直接+ 1这样的(如果lastsegment 15)

lastsegment+=1 //return 151 

因此,使用parseInt函数将字符串转换为INT

parseInt(lastsegment)+1 

您可以使用正则表达式匹配的模式,并捕获数字在一组。然后增加数字并将其替换为原始数值。

检查下面的代码片段。

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)

var lastsegment = 'img_or_whatever15.jpg'; 
var nextSegment = lastsegment .replace(/(\d+)/,function (g) { 
    return parseInt(g)+1; 
});