使用RegEx在javascript中重写格式错误的日期yyyy-MM-d到yyyy-MM-dd
Re-write malformed dates yyyy-M-d to yyyy-MM-dd in javascript using RegEx
所以我在javascript中重写日期,因为熟悉的js会抛出2013-1-1这样的日期,但这并不总是很有用。相反,我正在寻找一个例程,将这个日期形成正确的iso版本2013-01-01
今天我用字符串做这个
var b = new Date('2013-1-1');
var result = b.getFullYear() + "-" +
(b.getMonth().toString().length == 1 ? "0" + parseInt(b.getMonth() + 1) : parseInt(b.getMonth() + 1)) + "-" +
(b.getDate().toString().length == 1 ? "0" + b.getDate() : b.getDate());
这很管用,但很难看。有没有更好的方法来使用RegEx执行此操作?
请不要给我任何反正则表达式的评论
非正则表达式解决方案将是一个通用的填充函数。首先把你的约会对象放在无填充的版本中,然后你可以在分隔符上分开,并根据需要填充。类似这样的东西:
var date = '2013-1-1';
var pad = function(n) {
return function(str) {
while (str.length < n) {
str = '0'+ str;
}
return str;
}
};
date = date.split(/-/g).map(pad(2)).join('-'); //=> 2013-01-01
这可能会有所帮助:
var str="2013-1-1";
var m = str.match(/^('d{4})-('d{1})-('d{1})$/);
console.log([m[1], "0".concat([2]-1), "0".concat(m[3])].join('-'));
基于elclans的建议,我编写了一个扩展方法
// Add 0 to single numbers
Number.prototype.padDate = function () {
// Add +1 if input is 0 (js months starts at 0)
var number = this == 0 ? 1 : this;
return number.toString().length == 1 ? "0" + number : number;
};
这让我可以建立这样的日期
var b = new Date('2013-1-1');
var result = b.getFullYear() + "-" + b.getMonth().padDate() + "-" + b.getDate().padDate();
更清洁,感谢
相关文章:
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 在 Angular 中将日期格式从 yyyy/MM/dd 更改为 MM/dd/yyyy
- Javascript日期(yyyy-mm-ddThh:mm:ss偏移量)未正确转换
- 使用new date()将数据与当前日期的MM/DD/YYYY格式的日期进行比较和筛选,同时从用户输入值中减去new d
- 使用RegEx在javascript中重写格式错误的日期yyyy-MM-d到yyyy-MM-dd
- 如何获得日期以 YYYY-mm-dd 为单位的年份差异
- 日期格式 yyyy-mm-dd 到 dd-M-yy
- 获取日/月/年 HH:MM:SS FROM YYYY-MM-DDTHH:MM:SS.SSSZ 日期格式 在 Angula
- 文本框日期验证 mm/dd/yyyy classic asp , JavaScript.
- 如何使用掩码编辑扩展器用日期格式 MM/yyyy 屏蔽文本框
- 使用 javascript 将日期从 dd/mm/yyyy 转换为 yyyy/mm/dd
- 如何将此日期“太平洋标准时间 2016 年 3 月 9 日星期三 09:48:09”转换为“YYYY-MM-DD HH:
- 在 JavaScript 中将日期从 dd/mm/yyyy 转换为 yyyy-mm-dd
- 日期选取器和日期字段中的日期格式(YYYY-MM-DD)
- 在 JS 中将以下日期格式化为 YYYY-mm-dd
- 在 Javascript 中将字符串日期 YYYY-MM 转换为日期
- HTML 日期:在 yyyy - mm - dd 中获取正确的日期
- 将日期转换为 ISO YYYY-MM-DDThh:mm:ss.stzd 格式
- JavaScript:将日期字符串mm/dd/yyyy转换为日期mm/dd/yyyy