我有一个简单的函数可以在数字前加零:

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"

最佳答案

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

改变:

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

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



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'));

关于javascript - 为什么 JavaScript 会削减零?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38347250/

10-14 14:40
查看更多