js里把2015-5-2转成2015-05-02的正则怎么写?

如题,当月和日只有一位时在前面补一个0

阅读 4.7k
6 个回答

额,为什么replace里面要用函数呢

正向预测不捕获 + 捕获子表达式应该就可以

"2015-05-12".replace(/-(\d)(?=-|$)/g, '-0$1')
var d = "2015-5-2";
d.replace(/\d+/g, function(m){ return m.length >= 2 ? m : '0'+m;});

我擦,比较条件写错了都,已修正

给个取巧的 replace(/\-(\d)\-/,'-0$1-0')

"2015-5-2".replace(/(?=\b\d\b)/g, '0')

有一个库叫moment. js 一般人我不告诉他

var dateStr='2015-5-2';
dateStr=dateStr.replace(new RegExp('([0-9]{4})\-([0-9]{1,2})\-([0-9]{1,2})'),function(match,p1,p2,p3){
if(p2.length==1) p2='0'+p2;
if(p3.length==1) p3='0'+p3;
return [p1,p2,p3].join('-');

});
console.log(dateStr);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题