为什么我的parseInt函数没有将我的字符串转换为整数?

时间:2012-12-20 05:30:14

标签: javascript string integer addition parseint

我在这里出错了什么?我正在尝试将字符串转换为整数以便另外使用。

我的图片的portfolio类和src images/portfolio-images/gbn1.jpg

第一个提醒表示imageInt的值为1,但第二个提醒显示newImg的值为gbn11.jpg时我正试图获取gbn2.jpg var mainImg = $('.active-more').closest(".container").find("img.portfolio:first").attr("src"); var nofilename = mainImg.replace("images/portfolio-images/",""); nofilename = nofilename.replace(".jpg",""); var imageString = nofilename.replace(/[A-Za-z$-]/g, ""); var imageInt = parseInt(imageString, 10); var imageProject = nofilename.replace(/\d+/g, ''); alert(imageInt); var newImg= imageProject + imageInt + 1 + ".jpg"; alert(newImg); 1}}。

我在下面发布我的代码:

{{1}}

3 个答案:

答案 0 :(得分:6)

由于+的顺序,您正在进行字符串连接 - 添加要修复的大括号:

 var newImg= imageProject + (imageInt + 1) + ".jpg";

答案 1 :(得分:3)

试试这个:

var newImg= imageProject + (imageInt + 1) + ".jpg";

+运算符用于添加数字和连接字符串。如果左操作数是一个字符串,那么右边的操作数将被转换为字符串。

在上文中,通过将imageInt + 1括在括号中,我们确保在连接成字符串之前将其计算为整数。

请参阅小提琴:http://jsfiddle.net/VQG5j

答案 2 :(得分:0)

您尝试单独添加内容并将其连接到图像名称,添加时也使用parseInt

尝试下面给出的代码构造:

var mainImg = $('.active-more').closest(".container").find("img.portfolio:first").attr("src");
var nofilename = mainImg.replace("images/portfolio-images/",""); 
nofilename = nofilename.replace(".jpg",""); 
var imageString = nofilename.replace(/[A-Za-z$-]/g, "");
var imageInt = parseInt(imageString, 10);   
var imageProject = nofilename.replace(/\d+/g, '');  
alert(imageInt);
imgIntNew = imageInt + parseInt(1);
alert(imageIntNew);
var newImg= imageProject + imgIntNew + ".jpg";
alert(newImg);