js 常用工具类封装

       工作中经常会对输入内容进行校验,比如:是否是手机号,是否是身份证号码,是否包含特殊字符,当前环境是否是手机端等。因为这些用的比较高频,每个需要用到的项目都需要拷贝一份到所需项目中,比较繁琐,不易于维护,所以就打算封装了一个工具类,并发布到npm仓库,项目中只需npm进行安装就可以使用。

此外也封装了一些常用的函数,例如:

防抖、节流、文件下载,手机号脱敏、数据类型判断等。(具体使用请看下面说明)

dateFormat()  // 可以快速获取当前时间输出的格式。

dateFormat('yyyy-MM-dd hh:mm:ss')   // 2023-04-23 11:50:12

joinUrlQuery()  // 传入一个对象,可以把对象转换成参数拼接在url链接上

joinUrlQuery({name: 'wangxinyan', age: 33})  // ?name=wangxinyan&age=33

getParams()  //  可以快速获取url参数中需要获取key的value值,例如:https://www.baidu.com?name=wxy 

getParams('name')  // 输出wxy

一、安装

npm i js-tools-zk  或  yarn add js-tools-zk

二、使用


// 按需加载,没有用到的可不引入

import {
  isPhone,
  isEmail,
  isPostcode,
  isFixedphone,
  isURL,
  isIdCard,
  isMobile,
  isWX,
  isPatrn,
  isEmojo,
  isIp,
  isIMEI,
  isLicense,
  isLeapYear,
  checkPwd,
  getRandomNumber,
  dateFormat,
  joinUrlQuery,
  getParams,
  fileDownload,
  debounce,
  throttle,
  hideMobile,
  typeOf
} from 'js-tools-zk'


// 是否是手机号
console.log(isPhone('13600000000')) // true

// 是否是邮箱
console.log(isEmail('wangxinyan@qq.com')) // true

// 是否是邮编
console.log(isPostcode('518173')) // true

// 是否是座机
console.log(isFixedphone('0713-7669133')) // true

// 是否是url
console.log(isURL('http://www.baidu.com')) // true

// 是否是身份证号码
console.log(isIdCard('42010019901016519X')) // true

// 是否是移动端
console.log(isMobile()) // 不用传参 手机端返回true、电脑端返回false

// 是否微信环境
console.log(isWX()) // 不用传参 微信环境内为true、否则返回false

// 是否包含特殊字符
console.log(isPatrn('?$~!123456')) // true ,
// 目前  [`~!@#$%^&*_|+<>?"{}.\/;'[\]] 中括号内的字符都标记为特殊字符, 主要校验非文字输入

// 是否包含表情符号
console.log(isEmojo('hello')) // false 如果输入包含表情符号则返回 true

// 是否是IP地址
console.log(isIp('192.168.1.100')) // true

// 是否是手机机身码(IMEI)
console.log(isIMEI('1234567')) // false  可上网查看手机IMEI规则

// 是否统一社会信用代码 (营业执照)
console.log(isLicense('12345678')) // false 可上网查看营业执照规则

// 是否是闰年
console.log(isLeapYear('2020')) // true

// 验证密码强度
console.log(checkPwd('123456')) // 默认为0、包含字母返回1、数字+字母返回2、数字+字母+特殊符号返回3

// 获取指定范围内随机数
console.log(getRandomNumber(10, 30)) // 22 随机返回10~30之间的数字

// 转换日期为yyyy-MM-dd HH:mm:ss字符串
console.log(dateFormat(date, 'yyyy-MM-dd hh:mm:ss')) // date为传入的时间 , 2023-04-21 19:08:16

// 拼接url参数
console.log(joinUrlQuery({name: 'wangxinyan', age: 33})) // ?name=wangxinyan&age=30

// 获取url中参数  例如 url = https://www.baidu.com?age=33
console.log(getParams('age')) // 33

// 文件下载
fileDownload(url, fileName) //传入2个参数 [要下载的文件路径和下载后展示的文件名]

// 防抖 vue为例
methods: {
  btnClick() {
    debounce(() => {
      console.log('测试防抖')
    }, 600)
  }
}

// 节流
methods: {
  btnClick() {
    throttle(() => {
      console.log('测试节流')
    }, 600)
  }
}

// 手机号脱敏
hideMobile('13612345678') // 136****5678

// 数据类型判断
typeOf('张三丰')  // string

typeOf(33)  // Number

typeOf([])  // array

typeOf({})  // object

typeOf(new Date())  // date

typeOf(null) // null

typeOf(true) // boolean

typeOf(() => { }) // function

说明:如果有用到该工具类不满足的场景,可以给我留言,我会及时更新。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值