ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
``` //=>时间字符串格式化 // "2018/4/30 17:50:23" => "04-30 17:50" //=>简单处理 // let str = "2018/4/30 17:50:23", // ary = str.split(/(?:\/| |:)/g); // // console.log(ary);//=>["2018", "4", "30", "17", "50", "23"] // let [, month, day, hours, minutes] = ary, // result = `${month}-${day} ${hours}:${minutes}`; // console.log(result); // let str = "2018/4/30 17:50:23"; // //1.获取时间字符串中的所有数字 (SPLIT) // let ary = str.match(/\d+/g).map(item => { // return item < 10 ? '0' + item : item; // });//=>MAP相对于FOR-EACH来讲多了返回值, // 函数中RETURN的是啥,就是把当前数组中迭代的这一项替换成啥 // // console.log(ary);//=>["2018", "04", "30", "17", "50", "23"] //2.指定最后想要的时间格式,我们基于这个数组中的内容,帮你拼接好即可 // let template = '{0}年{1}月{2}日 {3}时{4}分{5}秒'; // //=>{0} / 0 =>'2018' ARY[0] // //=>{1} / 1 =>'04' ARY[1] // //=>... // template = template.replace(/\{(\d)\}/g, (...arg) => { // let [, index] = arg;//=>index:每一次正则匹配小分组捕获的结果(也就是那个数字) // return ary[index]; // }); // console.log(template); //=>时间字符串格式化 String.prototype.myFormatTime = function myFormatTime(template = '{0}年{1}月{2}日 {3}时{4}分{5}秒') { let ary = this.match(/\d+/g).map(item => (item < 10 ? '0' + item : item)); return template.replace(/\{(\d)\}/g, (...[, index]) => ary[index] || '00'); }; let str = "2018-4-30"; console.log(str.myFormatTime('{1}-{2} {3}:{4}')); //=>思考题 //1. 获取一个字符串中最多出现字符的次数和对应的字符 // let str = 'zhufengpeixunzhouxiaotianzuishuai'; //2. 获取URL问号后面的参数值 // let str = 'http://www.zhufengpeixun.cn/stu/?name=AA&age=25&sex=0#teacher'; //=>{name:'AA',age:25,sex:0,HASH:'teacher'} ```