padStart不是一个函数。

9
let m = 5;
m = m.padStart(2, '0');

错误:

m.padStart is not a function

期望结果:05

我使用的是Chrome浏览器,最新版本。

需要帮助吗?


1
数字没有 padStart 方法。 - CertainPerformance
@CertainPerformance,什么是数字的IS方法? - qadenza
这是一个字符串方法,所以如果你想使用它,请将数字转换为字符串。 - CertainPerformance
4个回答

16

padStart()方法可以将当前字符串使用另一个字符串进行填充(如果需要,可以多次填充),直到生成的字符串达到指定的长度。填充是从当前字符串的开头(左侧)开始应用的。

它是一个字符串函数,不是一个数字函数。 参考链接

解决方案-

let m = '5';
m = m.padStart(2, '0');
alert(m)

什么是数字的IS方法? - qadenza
你需要将数字转换为字符串。参考--https://dev59.com/0Wkw5IYBdhLWcg3wMHkY - ellipsis
2
似乎m是一个数字的原因,因此我会将其保留为数字,并在调用.padStart()之前调用.toString()m.toString().padStart(2,'0') - Andreas
节点14,我仍然没有原型来链接它:m.toString(...)。padString不是一个函数。typeof m ===字符串。 - MTroy

11

将你的值从 int 转换为 String,只需像这样使用 int.toString().padStart(n, '0');


这个回答对现有的回答没有任何补充。 - warped

1

由于padStart()不兼容Internet Explorer (IE)和其他旧版本浏览器,如果您尝试在数字上使用它,则可能会出现以下情况:

let m = 5;
m = m.padStart(2, '0');
alert(m);

未捕获的类型错误:m.padStart不是一个函数 位于:2:7

在这里,我提供了一个我创建的函数,它可以很好地处理字符串和数字,以防有人需要像将数字填充到01、02等的情况:

let m = 5;
m = padValue(m);
alert(m);

// Sam pading value to start with 0. eg: 01, 02, .. 09, 10, ..
function padValue(value) {
    return (value < 10) ? "0" + value : value;
}

正如我所提到的,您可以将已分配的5值替换为05:

let m = '5'; // The result will be 05

如果您将大于9的值作为字符串或数字传递,它将在不添加填充的情况下显示该值。例如:

let m = '10'; // The result will be 10

或者

let m = 10; // The result will be 10

1

将数字值转换为字符串,我需要这个函数将当前小时值转换为前导零数字,你的示例应该是:

let m = 5+''; // just in case you can't change the actual number variable .
m = m.padStart(2, '0');

我需要的代码

function CurrentTime(  ) {
 var today =  new Date();
  var h = today.getHours(  )+'' ; var m = today.getMinutes()+''   ;
 return  h.padStart( 2 ,  '0'  ) +':'+m.padStart( 2 ,  '0'  )  ; 
    }
 var current =  CurrentTime(  )   ;
 var timeNow = mydiv.innerText ; console.log("current: " + current)     ; 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接