wumi_blog
wumi_blog copied to clipboard
js Date
JS Date 对象用于处理日期和时间。
var myDate=new Date()
new Date("January 12,2006 22:19:35");
new Date("January 12,2006");
new Date(2006,0,12,22,19,35);
new Date(2006,0,12);
new Date(1137075575000);
ios中 new Date() 不支持类似1990-12-1这种格式 需转换为类似1990/12/1 项目中
//this.order.orderCompletedTime 为类似'2016-09-11 12:03:12'
new Date(this.order.orderCompletedTime.replace(/-/g, "/"))
获取某个月的天数
function getDays(year, month) {
return new Date(year, month + 1, 0).getDate();
}
利用toLocaleString格式化日期
var date = new Date();
var result = date.toLocaleString('zh-CN', { hour12: false })
.replace(/\//g, '-').replace(/\b\d\b/g, '0$&');
正则表达式命名捕获组 编号的捕获组 //正则表达式命名捕获组 const RE_DATE = /([0-9]{4})-([0-9]{2})-([0-9]{2})/;
const matchObj = RE_DATE.exec('1999-12-31'); const year = matchObj[1]; // 1999 const month = matchObj[2]; // 12 const day = matchObj[3]; // 31 复制代码通过数字引用捕获组有几个缺点:
找到捕获组的数量是一件麻烦事:必须使用括号。 如果要了解组的用途,则需要查看正则表达式。 如果更改捕获组的顺序,则还必须更改匹配代码。
命名的捕获组
ES9中可以通过名称来识别捕获组:(?
const matchObj = RE_DATE.exec('1999-12-31'); const year = matchObj.groups.year; // 1999 const month = matchObj.groups.month; // 12 const day = matchObj.groups.day; // 31
// 使用解构语法更为简便 const {groups: {day, year}} = RE_DATE.exec('1999-12-31'); console.log(year); // 1999 console.log(day); // 31 复制代码可以发现,命名捕获组有以下优点:
找到捕获组的“ID”更容易。 匹配代码变为自描述性的,因为捕获组的ID描述了正在捕获的内容。 如果更改捕获组的顺序,则无需更改匹配代码。 捕获组的名称也使正则表达式更容易理解,因为您可以直接看到每个组的用途。
作者:拓跋zhleven 链接:https://juejin.im/post/5bfe003f5188252bf829c3fb 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。