es9正则

176 阅读1分钟

前阵子面了字节跳动的前端,问了很多正则的问题,我自认为最近刚好用过,没想到回答的并不好,今天看了一篇文章,记录下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());