js commonly used regular expressions and tool methods

  1. Filter emoji expressions
removeEmoji(content){
    
    
    return content.replace(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g, "");
}
  1. 11-digit mobile phone number verification
/^1\d{10}$/.test(val) 
  1. Email format verification
/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(val)
  1. Timestamp conversion date (getBeijingtime is still displayed across time zones)
    getBeijingtime (date) {
    
    
      //获得当前运行环境时间
      var d = date;
      var currentDate = date;
      var tmpHours = currentDate.getHours();
      //算得时区
      var time_zone = - d.getTimezoneOffset() / 60;
      if (time_zone < 0) {
    
    
        time_zone = Math.abs(time_zone) + 8; currentDate.setHours(tmpHours + time_zone);
      } else {
    
    
        time_zone -= 8; currentDate.setHours(tmpHours - time_zone);
      }
      return currentDate;
    },
    formateDate (date, fmt = 'yyyy-MM-dd hh:mm:ss') {
    
    
      date = this.getBeijingtime(date);
      let o = {
    
    
        'M+': date.getMonth() + 1, //月份
        'd+': date.getDate(), // 日
        'h+': date.getHours(), //时
        'm+': date.getMinutes(), // 分
        's+': date.getSeconds(), // 秒
        'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
        S : date.getMilliseconds(), //毫秒
      };

      if (!date || date == null) return null;

      if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
      for (var k in o) {
    
    
        if (new RegExp('(' + k + ')').test(fmt)) {
    
    
          fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
        }
      }
      return fmt;
    },
  1. Countdown
    cutDownTime (str) {
    
    
      //获取当前时间
      let date = new Date();
      let now = date.getTime();
      //设置截止时间
      let endDate = new Date(str);
      let end = endDate.getTime();

      //时间差
      let leftTime = end - now;
      //定义变量 d,h,m,s保存倒计时的时间
      let d,h,m,s;
      if (leftTime >= 0) {
    
    
        d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
        h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
        m = Math.floor(leftTime / 1000 / 60 % 60);
        s = Math.floor(leftTime / 1000 % 60);
      } else {
    
    
        this.pageInit();
        return;
      }
      d = d < 10 ? '0' + d : d;
      h = h < 10 ? '0' + h : h;
      m = m < 10 ? '0' + m : m;
      s = s < 10 ? '0' + s : s;
      //将倒计时赋值到div中
      this.coutDownTimeTxt = {
    
    
        d,
        h,
        m,
        s
      };
      //递归每秒调用countTime方法,显示动态时间效果
      setTimeout(()=>{
    
    
        this.cutDownTime(str);
      },1000);
    },
  1. Current month calendar
    currentMonthCalender (month) {
    
    
      const monthEnArr = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
      const monthStrArr = month.split('-');
      const currentMonthFirstDate = new Date(monthEnArr[parseInt(monthStrArr[1]) - 1] + ' 01 ' + monthStrArr[0]);
      // 这个月有多少天
      const monthDaysNum = new Date(currentMonthFirstDate.getFullYear(), currentMonthFirstDate.getMonth() + 1, 0).getDate();
      // 计算第一天是星期几 并补全数组
      const firstDateWeekDay = currentMonthFirstDate.getDay();
      let firstDateWeekDayFromMonday = 0;
      if (firstDateWeekDay == 0) {
    
    
        firstDateWeekDayFromMonday = 6;
      } else {
    
    
        firstDateWeekDayFromMonday = firstDateWeekDay - 1;
      }
      // 初始化数组 差几天放几个0
      let resultDateList = [];
      const lastMonthDay = new Date(currentMonthFirstDate.getFullYear(), currentMonthFirstDate.getMonth(), 0);
      const lastMonthDaysNum = lastMonthDay.getDate();
      // 上个月的最后几天日期
      let lasMonthDateList = [];
      for (let i = 1;i <= lastMonthDaysNum;i ++) {
    
    
        let dateNumber = i;
        if (dateNumber < 10) {
    
    
          dateNumber = '0' + dateNumber;
        }
        const date = {
    
    
          // dateNumber: dateNumber,
          dateNumber: '',
          isGrey: true,
          dateStr: this.formateDate(new Date(lastMonthDay.setDate(parseInt(dateNumber))), 'yyyyMMdd')
        };
        lasMonthDateList.push(date);
      }
      resultDateList = lasMonthDateList.slice(lastMonthDaysNum - firstDateWeekDayFromMonday,lastMonthDaysNum).concat(resultDateList);
      // 放日期
      for (let i = 1;i <= monthDaysNum;i ++) {
    
    
        let dateNumber = i;
        if (dateNumber < 10) {
    
    
          dateNumber = '0' + dateNumber;
        }
        const date = {
    
    
          dateNumber: dateNumber,
          isGrey: false,
          dateStr: this.formateDate(new Date(currentMonthFirstDate.setDate(parseInt(dateNumber))), 'yyyyMMdd')
        };
        resultDateList.push(date);
      }
      // 最后一天距离星期天 差几天
      const currentMonthLastDate = new Date(monthEnArr[parseInt(monthStrArr[1]) - 1] + ' ' + monthDaysNum + ' ' + monthStrArr[0]);
      const lastDateWeekDay = currentMonthLastDate.getDay();
      let lastDateWeekDayFromSunday = 0;
      if (lastDateWeekDay == 0) {
    
    
        lastDateWeekDayFromSunday = 0; // 刚好结束
      } else {
    
    
        lastDateWeekDayFromSunday = 7 - lastDateWeekDay;
      }
      // 结尾 差几天放几个0
      const nextMonthDay = new Date(currentMonthFirstDate.getFullYear(), currentMonthFirstDate.getMonth() + 2, 0);
      const nextMonthDaysNum = nextMonthDay.getDate();
      // 上个月的最后几天日期
      let nextMonthDateList = [];
      for (let i = 1;i <= nextMonthDaysNum;i ++) {
    
    
        let dateNumber = i;
        if (dateNumber < 10) {
    
    
          dateNumber = '0' + dateNumber;
        }
        const date = {
    
    
          // dateNumber: dateNumber,
          dateNumber: '',
          isGrey: true,
          dateStr: this.formateDate(new Date(nextMonthDay.setDate(parseInt(dateNumber))), 'yyyyMMdd')
        };
        nextMonthDateList.push(date);
      }
      resultDateList = resultDateList.concat(nextMonthDateList.slice(0,lastDateWeekDayFromSunday));
      let resultMap = [];
      for (var i = 0;i < resultDateList.length;i += 7) {
    
    
        resultMap.push(resultDateList.slice(i, i + 7));
      }
      return resultMap;
    },
  1. Randomly select several elements from the array
    getRandomArrayElements(arr, count) {
    
    
      var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;
      while (i-- > min) {
    
    
        index = Math.floor((i + 1) * Math.random());
        temp = shuffled[index];
        shuffled[index] = shuffled[i];
        shuffled[i] = temp;
      }
      return shuffled.slice(min);
    },

Guess you like

Origin blog.csdn.net/sinat_29843547/article/details/127324762