js方法和一些正则

114 阅读1分钟

1,正则去掉v-html里面的样式和标签

   snippet (value) {
      // console.log(value.replace(/<[^>]+>/g, '')) // 去掉html标签
      return value.replace(/<[^>]+>/g, '').slice(0, 50) + "..." // 截取多少字符
    }

2,包含大小写,字符数字四种的至少8位的密码

// 带空格,不包含下划线
let reg1 = /^(?![A-Za-z0-9]+$)(?![a-z0-9\W]+$)(?![A-Za-z\W]+$)(?![A-Z0-9\W]+$)[a-zA-Z0-9\W]{8,}/

// 不带空格
let reg2 = /^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,16}$/
// 包含下划线
let reg = /(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[\d])(?=.*?[^\sa-zA-Z0-9]).{8,}/

3, 判断是否为空对象

 function isEmpty(obj) {
   for (key in obj) {
      if (obj, hasOwnPropety(key)) {
      return false

     }
  }
  return true
}
 console.log(isEmpty(obj));

4, 判断是对象还是数组

  function getDataType(ao) {
    if (ao instanceof Array) {
      return 'Array'
    } else if (ao instanceof Object) {
      return 'Object'

    } else {
      return 'Data not is Array or Object'

    }
    console.log(getDataType(arr))
  }

3,获取上一周下一周的时间

需求,点击上一周下一周,获取对应的日期

 <a style="padding: 0 12px"
         @click="shang">上一周</a>
      <label>开始时间:</label>
      <DatePicker type="date"
                  format="yyyy-MM-dd"
                  @on-change="startTime = $event"
                  :value="startTime">
      </DatePicker>

      <label class="ml-10">结束时间:</label>
      <DatePicker type="date"
                  format="yyyy-MM-dd"
                  @on-change="endTime = $event"
                  :value="endTime">
      </DatePicker>
      <a style="padding: 0 12px"
         @click="xia">下一周</a>

 mounted () {
    let Nowdate = new Date();
    let WeekFirstDay = new Date(Nowdate - (Nowdate.getDay() - 1) * 86400000); // 本周第一天
    let WeekLastDay = new Date((WeekFirstDay / 1000 + 6 * 86400) * 1000);// 本周第最后一天
    this.startTime = WeekFirstDay
    this.endTime = WeekLastDay
},

  methods: {
    shang () {
      this.getLastWeekData(this.startTime, this.endTime)
    },
    xia () {
      this.getNextWeekData(this.startTime, this.endTime)
    },
    getLastWeekData (start, end) {
      let startVal = new Date((start / 1000 - 7 * 86400) * 1000)
      let endVal = new Date((end / 1000 - 7 * 86400) * 1000)
      this.startTime = startVal
      this.endTime = endVal
    },
    getNextWeekData (start, end) {
      let startVal = new Date((start / 1000 + 7 * 86400) * 1000)
      let endVal = new Date((end / 1000 + 7 * 86400) * 1000)
      this.startTime = startVal
      this.endTime = endVal
    },
    

4, 拿到所有数据,前端自己分页

// initListDatas所有 的数据
// userLists写在page组件上的data数据
this.userLists = this.initListDatas.slice((this.currentPage - 1) * this.pageSize, this.currentPage * this.pageSize)