【发布时间】:2015-08-22 11:39:53
【问题描述】:
在测试我的一个检查数字有效性的函数时,我注意到一些非常奇怪的事情,我在测试“number.toString()[0]”时首先注意到了它。如果我在控制台登录 (fLetter(019272)); “0”始终显示“1”。
在线检查后,我找不到与对包含“0”的数字使用 toString() 方法相关的任何问题。
function numberValidate(number) {
var numCheck = [0, 5, 7, 8, 9];
var fLetter = number.toString()[0];
if (number.match(/^\d{6}$/)) {
for (var i = 0; i < 5; i++) {
if (fLetter == numCheck[i]) {
return false;
} else {
return true;
}
}
}
}
我尝试在应用和不应用 toString() 方法的情况下检查其他一些测试变量,得到了一些我无法理解的结果。 **注意 - toString() 添加产生了相同的结果(在 JSfiddle 中执行)
var numTest = 00000000;
var numTest1 = 20203020;
var numTest2 = 011000110100;
var numTest3 = 01928;
var numTest4 = 012345;
console.log(numTest); //Returned 0
console.log(numTest1); //Returned 20203020
console.log(numTest2); //Returned 1207996480
console.log(numTest3); //Returned 1928
console.log(numTest4); //Returned Returned 5349
谁能解释我为什么要返回这些值?谢谢
【问题讨论】:
-
那么,真正的问题是什么?
-
见here(阅读描述,上面写着«If radix is undefined(...)»
-
谢谢你 - 我现在正在阅读它。
标签: javascript tostring number-formatting