要修剪的JavaScript在字符串中开始为0

Con*_*eng 3 javascript

我有一个时间字符串,格式是HHMM,我需要得到它的小数,我该怎么办?

例如

'1221'= 1221

'0101'= 101

'0011'= 11

'0001'= 1

如果字符串以"0x"开头,则基数为16(十六进制)

如果字符串以"0"开头,则基数为8(八进制).

但无论是从0还是00或000开始,我都希望将其视为十进制.


额外:

谢谢大家.

我知道你说了什么,是什么让我困惑如下:

var temp1 = 0300; var temp2 = '0300';

parseInt函数(temp1,10)= 192; parseInt函数(temp1,10)= 300;

所以我怀疑parseInt()并有这个问题.

cll*_*pse 6

parseInt()自己使用并指定基数.

parseInt("10")     // 10
parseInt("10", 10) // 10
parseInt("010")    //  8
parseInt("10", 8)  //  8
parseInt("0x10")   // 16
parseInt("10", 16) // 16
Run Code Online (Sandbox Code Playgroud)

注意:您应该始终提供可选的radix参数,因为如果没有提供,parseInt将尝试自己解决它.这可能会导致一些非常奇怪的行为.


更新:

这有点像黑客.但是尝试使用一个String对象:

var s = "0300";

parseInt(s, 10); // 300
Run Code Online (Sandbox Code Playgroud)

这个hack的缺点是你需要指定一个字符串变量.以下示例均不起作用:

parseInt(0300 + "", 10);              // 192    
parseInt(0300.toString(), 10);        // 192    
parseInt(Number(0300).toString(), 10) // 192
Run Code Online (Sandbox Code Playgroud)