为什么JavaScript会切零?

时间:2016-07-13 09:08:05

标签: javascript string number-formatting

我有一个简单的功能,可以在数字之前添加零:

function validateString(length, str){
    var newStr = '' + str;
       for (var i = str.length; i < length; i++)
          newStr = '0' + newStr;
    return newStr;
}

我需要更改(变量类型?)以使其适用于数字?

validateString(12,2);
"2" // Unexpected rezult
validateString(12,'2');
"000000000002"

1 个答案:

答案 0 :(得分:7)

这种情况正在发生,因为您正在呼叫str.length而不是newStr.length。数值具有未定义长度。

变化:

for (var i = str.length; i < length; i++)

要:

for (var i = newStr.length; i < length; i++)

&#13;
&#13;
function validateString(length, str){
    var newStr = '' + str;
       for (var i = newStr.length; i < length; i++)
          newStr = '0' + newStr;
    return newStr;
}

console.log(validateString(12,2));
console.log(validateString(12,'2'));
&#13;
&#13;
&#13;