前端项目中常用方法总结

42 篇文章 1 订阅
6 篇文章 0 订阅

1:获取url参数

getParams(url){
     //获取?后面第一个字符串的索引
       var index = url.indexOf('?')+1;
       //取得url后面的字符串
       var params = url.substr(index);
       //使用&切割字符串,返回一个数组
       var arr = params.split('&');
       //定义一个空对象
       var o = {};
       //数组中每一项的样子 key=value
       for(var i = 0;i < arr.length;i++){
           //临时数组
           var tmpArr = arr[i].split('=');
           var key = tmpArr[0];
           var value = tmpArr[1];
           o[key] = value;
       }
       return o;
   }

2:删除数组最后一项

js数组常用方法总结推荐文章:链接

eaport const truncate = (arr) => {
   return arr.filter(function(v, i, ar) {
      return i !== ar.length - 1
   })
},

数组删除/替换某一项

splice(index,len,[item]) 注释:该方法会改变原始数组。
splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值
index : 数组开始下标
len : 替换/删除的长度
item : 替换的值,删除操作的话 item为空

export const deleteArr = (arr, index, len, item) => {
  arr.splice(index, len, item)
}

正则表达式

export const regExpRules = {
  numberLetterChinese: /^[a-zA-Z0-9\u4e00-\u9fa5]+$/, // 中文数字字母
  numberLetter: /^[0-9a-zA-Z]*$/, // 数字字母
  numberLetterLine: /^[0-9a-zA-Z_\-]*$/, // 数字字母下划线中划线
  positiveNumber: /^[1-9]\d*$/, // 正整数
  number: /^[0-9]*$/, // 数字
  // price: /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, // 价格
  phone: /^([0-9]{3,4}-)?[0-9]{7,8}$/, // 固话
  mobile: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, // 手机号
  zip: /^[0-9]{6}$/, // 邮编
  price: /^\d{1,8}(\.\d{1,2})?$/, // 价格
  priceNegative: /^-?\d{1,8}(\.\d{1,2})?$/, // 价格,可为负
  invoicePrice: /^\d{1,8}(\.\d{1,6})?$/, // 价格
  url: /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/,
  email: /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/, // 邮箱
  // 常用中英文及标点符号,不允许表情符号和空格
  commonCharacter: /^[A-Za-z0-9_\u4e00-\u9fa5\"\'\,\,\.\。\!\!\?\?\-\—\_\<\>\%\;\‘\’\;\)\《\(\)\》\(\&\+\=\`\“\”\·\*\#\@\@\▪\の\]\[]+$/
}

将时间戳改为date格式

// val: 需要转化的时间戳, fmt:转化格式
export const formatTime = (val, fmt = 'yyyy-MM-dd hh:mm:ss') => {
  if (!val) return
  val = new Date(val)

  var o = {
    'M+': val.getMonth() + 1, //  月份
    'd+': val.getDate(), // 日
    'h+': val.getHours(), // 小时
    'm+': val.getMinutes(), // 分
    's+': val.getSeconds(), // 秒
    'q+': Math.floor((val.getMonth() + 3) / 3), // 季度
    S: val.getMilliseconds() // 毫秒
  }
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(
      RegExp.$1,
      (val.getFullYear() + '').substr(4 - RegExp.$1.length)
    )
  }
  for (let 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
}

过滤调对象中的一些值为空的属性

// obj: 需要过滤的对象
export let filterObj = obj => {
  let newObj = {}
  for (const key in obj) {
    if (obj[key] === 'undefined' || obj[key] === null || obj[key] === '') {
      continue
    } else {
      newObj[key] = obj[key]
    }
  }
  return newObj
}

倒计时

// countDown: 倒计时开始时间
export const startToCountDown = (COUNT_TIME) => {
  let countDown = COUNT_TIME
  let timeInterl = setInterval(() => {
    if (countDown > 0) {
        countDown = countDown - 1
      } else {
        clearInterval(timeInterl)
      }
    }, 1000)
    return countDown
},
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hyduan200

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值