前阵子面了字节跳动的前端,问了很多正则的问题,我自认为最近刚好用过,没想到回答的并不好,今天看了一篇文章,记录下es9的正则表达式写法。
面试题:对于"2019-07-28",封装一个date.getYear()方法。
// es9分组命名功能写法: const date = "2019-07-28"; const reg = /(?\d{2,})-(?\d{2})-(?\d{2})/; const result = reg.exec(date); 只要这样写,就可以得到带有group对象的result了。然后提取日期方法就是:
result.groups.year // 输出2019 不分组的话就得:
result[1] // 2019,result[0]是2019-07-28 result[2] // 07 result[3] // 28 所以这道题这么写就好了:
var date = "2019-07-28";
class myDate{
regQ = /(?<year>\d{2,})-(?<month>\d{2})-(?<day>\d{2})/;
result = this.regQ.exec(date);
getYear = ()=>{
return this.result.groups.year;
}
}
const today = new myDate(date);
console.log(today.getYear());