Javascript 字符串到 int 转换

Javascript String to int conversion

本文关键字:转换 int 字符串 Javascript      更新时间:2023-09-26

>我在页面中嵌入了以下JS:

var round = Math.round;
var id = $(this).attr("id");
var len = id.length;
var indexPos = len -1; // index of the number so that we can split this up and used it as a title
var pasType = id.substring(0, indexPos); // adult, child or infant
var ind = round(id.substring(indexPos)); // converts the string index to an integer
var number = (id.substring(indexPos) + 1); // creates the number that will go in the title
window.alert(number);

id 将是类似于 adult0 的东西,我需要将该字符串拆分为 adult 和 0 - 这部分工作正常。

当我尝试增加 0 时出现问题。如您所见,我使用 Math.round 将其转换为整数,然后向其添加 1 - 我希望在此之后 0 为 1。但是,它似乎没有将其转换为整数,因为我得到01,而不是1。与 adult1 一起测试时,我收到的警报是 11 .

我用这个问题作为参考,也试过var number += id.substring(indexPos);,这打破了JS(unexpected identifier '+='

有谁知道我做错了什么?有没有更好的方法

parseInt()函数解析一个string并返回一个integer,10是基数或基数[文档]

var number = parseInt(id.substring(indexPos) , 10 ) + 1;

Number Class 转换 :-

例如:

var n = Number("103");
console.log(n+1)

输出:104

注意:- Number是类。当我们传递字符串时,Number class的构造函数将转换它。

这与

JavaScript在运算符中的+有关 - 如果一个数字和一个字符串被"添加",则该数字将转换为字符串:

0 + 1; //1
'0' + 1; // '01'

要解决此问题,请使用+一元运算符,或使用parseInt()

+'0' + 1; // 1
parseInt('0', 10) + 1; // 1

一元+运算符将其转换为数字(但是,如果它是小数,它将保留小数位),并且parseInt()是不言自明的(转换为数字,忽略小数位)。

第二个参数是parseInt()在放置前导 0 时使用正确基数所必需的:

parseInt('010'); // 8 in older browsers, 10 in newer browsers
parseInt('010', 10); // always 10 no matter what
如果您需要将

字符串中的小数转换为它们的数值,还有parseFloat() - +也可以这样做,但它的行为略有不同:不过那是另一回事了。

JS会认为0是一个字符串,实际上它确实是,要将其转换为int,请使用:parseInt()函数,例如:

var numberAsInt = parseInt(number, 10);  
// Second arg is radix, 10 is decimal.

如果数字无法转换为 int,它将返回 NaN,因此我建议在生产中使用的代码中也检查一下,或者至少如果您不是 100% 确定输入。

虽然parseInt是执行此操作的官方函数,但您可以使用以下代码实现相同的功能:

number*1

优点是可以保存一些字符,如果您的代码必须进行大量此类对话,这可能会节省带宽。

使用 parseInt():

var number = (parseInt(id.substring(indexPos)) + 1);` // creates the number that will go in the title

如果你确定id.substring(indexPos)是一个数字,你可以这样做:

var number = Number(id.substring(indexPos)) + 1;

否则,我建议检查数字函数的计算是否正确。