我将id作为参数传递给javascript函数,因为它来自UI,它是零填充的.但它似乎有(可能)"奇怪"的行为?
console.log(0000020948); //20948
console.log(0000022115); //9293 which is 22115's octal
console.log(parseInt(0000022115, 10)); // 9293 which is 22115's octal
console.log(0000033959); //33959
console.log(20948); //20948
console.log(22115); //22115
console.log(33959); //33959
Run Code Online (Sandbox Code Playgroud)
我怎样才能确保它们解析到正确的数字呢?(十进制)
编辑:
只是让它更清楚:
这些数字来自服务器并且是零填充字符串.我正在为每个人制作一个删除按钮.
喜欢:
function printDelButton(value){
console.log(typeof value); //output string
return '<a href="#" onclick="deleteme('+value+')"><img src="images/del.png"></a>'
}
and
function printDelButton(value){
console.log(typeof value); //output numeric
console.log(value); //here output as octal .... :S
}
Run Code Online (Sandbox Code Playgroud)
我尝试过:__CODE__仍然解析为Octal
如果您将参数作为字符串对象接收,则应该可以使用它
parseInt(string, 10)
Run Code Online (Sandbox Code Playgroud)
将字符串解释为十进制,即使它们以0开头.
在你的测试中,你传递parseInt方法一个数字,而不是一个字符串,也许这就是它没有返回预期结果的原因.
尝试
parseInt('0000022115', 10)
Run Code Online (Sandbox Code Playgroud)
代替
parseInt(0000022115, 10)
Run Code Online (Sandbox Code Playgroud)
这确实为我返回221115.
| 归档时间: |
|
| 查看次数: |
600 次 |
| 最近记录: |