javascript - 如何强制以 10 为基数输入数字?

标签 javascript

JavaScript 支持不同的数字基数。基数 2、8、10 和 16 很容易写成:

Number(0b10) //2
Number(0o10) //8
Number(10)   //10
Number(0x10) //16

现在我想输入一个 0000-9999 之间的 4 位数字,问题是在 JavaScript 中不仅 0oXX 是八进制的,而且前导 0 的数字也是八进制的(如果可以的话)。有什么方法可以使用字符串输入来确定“真正的”以 10 为底的原始输入吗?

例子:

Number(010) == Number(0o10) //would be true

最佳答案

现在有办法强制 JS 将 Number(010) 视为十进制。

当您编写 010 时 - 它是八进制文字。但是在严格模式下 0-prefixed are not allowed .

"use strict" 
010.toString()
//Uncaught SyntaxError: Octal literals are not allowed in strict mode.

"use strict" 
0o10.toString()
"8"

所以在我看来,您必须使用文本输入并解析它才能实现您的目标。

关于javascript - 如何强制以 10 为基数输入数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50154493/

相关文章:

javascript - 在JSX里面渲染React变量,具体怎么到 'tokenize' React Router结构?是否可以?

javascript - 在纵向模式 iPad/iPhone 中禁用 Jquery

javascript - 传递类引用的 Angular 范围问题中的 Highcharts

javascript - 正则表达式 exec 函数多次不起作用

javascript - 获取动态创建元素的整个 HTML

带有 key :object 的 JavaScript json

javascript - 多个弹出窗口 - 超出最大调用堆栈大小 - jQuery 错误

javascript - 允许在 jquery 中的一个函数中使用多个选择器

多个字段的javascript字段计算

javascript - 没有点击的第一张图片