js Utils封装方法,手机密码验证、防抖节流、模拟toast、promptBox、cookie操作、网络类型、操作类型、千分位、随机数等

本文介绍了JavaScript中常用的实用工具函数,包括手机号验证、密码验证、自定义toast提示、promptBox、加载动画、RSA加密、格式化数字、地址栏参数获取、Cookie操作、网络类型和操作系统判断、滑动事件、图片下载、文本复制、千分位分隔、防抖和节流等技巧,是项目开发中必不可少的基础功能封装。
摘要由CSDN通过智能技术生成

一个项目少不了的就是utils.js的封装了,以后还会加,欢迎补充,总结如下:

判断是否为空

export function validatenull(val) {
   
  if (typeof val === 'boolean') {
   
    return false
  }
  if (val instanceof Array) {
   
    if (val.length === 0) return true
  } else if (val instanceof Object) {
   
    if (JSON.stringify(val) === '{}') return true
  } else {
   
    if (val === 'null' || val == null || val === 'undefined' || val === undefined || val === '') return true
  }
  return false
}

验证手机号:11位,以1开头,其余10位是数字

export function isMobile(val) {
   
  let reg = new RegExp(/^1\d{10}$/);
  if (reg.test(val)) {
   
    return true;
  } else {
   
    return false;
  }
}
// 加限制
export function isMobile(val) {
   
  let reg = new RegExp(/^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/);
  if (reg.test(val)) {
   
    return true;
  } else {
   
    return false;
  }
}

验证密码:至少6位,数字和英文均可

export function isPwd(val) {
   
  let reg = new RegExp(/^[0-9A-Za-z]+$/);
  // 4-16位 /^[0-9A-Za-z]{4,16}$/
  if (val == null || val.length < 6) {
   
    return false;
  }
  if (reg.test(val)) {
   
    return true;
  } else {
   
    return false;
  }
}

模拟toast弹窗效果 自定义

export function toast(msg, time) {
    
  if (typeof (time) != Number) {
   
    time = 3000;
  }
  if (validatenull(msg)) {
   
    return;
  }
  let dom = document.createElement('div');
  dom.id = 'msg_toast';
  dom.innerHTML = '<span>' + msg + '</span>';
  document.getElementById('app').appendChild(dom);
  dom.addEventListener('click', function () {
   
    document.getElementById('app').removeChild(dom);
  })
  setTimeout(function () {
   
    document.getElementById('app').removeChild(dom);
  }, time);
}

/* Toast样式 */

#msg_toast {
   
    position: absolute;
    left: 0;
    right: 0;
    bottom: 20%;
    text-align: center;
    z-index: 998;
}

#msg_toast span {
   
    height: 0.88rem;
    max-width: 50%;
    background: #666;
    padding: 0.1rem 0.2rem;
    border-radius: 0.05rem;
    color: #eee;
}



promptBox自定义

//以取消开头颜色才适配  promptBox({title:'标题',cnt:'内容',desc:'副内容',btns:['取消','确认']},function(){})
export function promptBox(tip, succBack) {
   
  if (validatenull(tip)) {
   
    return;
  }
  let dom = document.createElement('div');
  dom.id = 'tipBox';
  if (document.querySelectorAll("#tipBox").length > 0) {
   
    document.body.removeChild(document.querySelectorAll("#tipBox")[0]);
  }
  let tdesc = ""
  if (!validatenull(tip.desc)) {
   
    tdesc = '<p class="tdesc">' + tip.desc || "" + '</p>'
  }
  let btns = "";
  let arr = tip.btns;
  if (!validatenull(arr)) {
   
    for (let i = 0; i < arr.length; i++) {
   
      let style1 = "";
      let style2 = "";
      if (arr.length > 1 && (i == 0)) {
   
        style1 = "color:#666;";
        style2 = "border-right: 1px #e0e0e0 solid;box-sizing: border-box;";
      }
      btns += '<div class="btn" style="' + style2 + '" ><button style="' + style1 + '">' + arr[i] + '</button></div>';
    }
  }
  dom.innerHTML = '<div class="blackBg"></div><div class="whiteBg">' +
    '<p class="tTitle">' + (tip.title ? tip.title : "提示") + '</p><p class="cltCnt">' +
    (tip.cnt || "") + '</p>' + tdesc 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值