【问题标题】:Why my parseInt function is not converting my string into integer?为什么我的 parseInt 函数没有将我的字符串转换为整数?
【发布时间】:2012-12-07 14:27:57
【问题描述】:

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

我有一张图片,其类别为 portfolio,src 为 images/portfolio-images/gbn1.jpg

第一个警报说imageInt 的值是1,但是当我尝试获取gbn2.jpg 时,第二个警报说newImg 的值是gbn11.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 用于命名示例中的变量以显示类型。

标签: javascript string integer addition parseint


【解决方案1】:

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

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

【讨论】:

  • @maskedj:在下面试试我的答案
  • @lwburk,不确定您在哪里看到问题:string + int 或 int + string 产生字符串,但 int + int 产生 int(准确地说是数字)。所以当一个人强制(imageInt + 1)首先被执行时,它将是int+int,然后去string+int/int+string路线。
  • @lwburk :) 没问题,看到变量名实际上反映了那里存储的内容,这确实令人惊讶。
  • @AlexeiLevenkov - 我处理大量使用匈牙利符号的遗留代码,所以我实际上看到了很多。这里没有任何借口:)
【解决方案2】:

试试这个:

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

+ 运算符用于添加数字和连接字符串。如果左操作数是字符串,则右操作数转换为字符串。

在上面,通过将imageInt + 1 括在括号中,我们确保它在被连接为字符串之前被评估为整数。

见小提琴:http://jsfiddle.net/VQG5j

【讨论】:

  • @lwburk——如果你愿意,你可以删除 cmets。
【解决方案3】:

您尝试单独添加内容并将其连接到图像名称,添加时也使用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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-02
    • 2021-02-23
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2020-04-12
    相关资源
    最近更新 更多