如何在JavaScript中将字符串转换为整数?


当前回答

尝试parseInt。

var number = parseInt("10", 10); //number will have value of 10.

其他回答

还有一个附带说明:MooTools有一个函数toInt(),用于任何本机字符串(或浮点(或整数))。

"2".toInt()   // 2
"2px".toInt() // 2
2.toInt()     // 2

在我看来,没有答案涵盖所有边缘情况,因为解析浮点值会导致错误。

function parseInteger(value) {
    if(value === '') return NaN;
    const number = Number(value);
    return Number.isInteger(number) ? number : NaN;
}
parseInteger("4")            // 4
parseInteger("5aaa")         // NaN
parseInteger("4.33333")      // NaN
parseInteger("aaa");         // NaN

前面的所有答案都是正确的。请先通过“typeot x==='number'”确认这是字符串中的数字。否则,它将返回NaN。

 var num = "fsdfsdf242342";
 typeof num => 'string';

 var num1 = "12423";
 typeof num1 => 'number';
 +num1 = > 12423`

尝试str-0将字符串转换为数字。

> str = '0'
> str - 0
  0
> str = '123'
> str - 0
  123
> str = '-12'
> str - 0
  -12
> str = 'asdf'
> str - 0
  NaN
> str = '12.34'
> str - 0
  12.34

以下是两个链接,用于比较将字符串转换为int的几种方法的性能

https://jsperf.com/number-vs-parseint-vs-plus

http://phrogz.net/js/string_to_number.html

另一种选择是将值与自身进行双重XOR:

var i = 12.34;
console.log('i = ' + i);
console.log('i ⊕ i ⊕ i = ' + (i ^ i ^ i));

这将输出:

i = 12.34
i ⊕ i ⊕ i = 12