2.1.5 • Published 2 years ago

zr-toolkits v2.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

zr-toolkits NPM Version NPM Size NPM Download

使用方式

注:为简化操作,默认命名为"tks"

npm install --save zr-toolkits

ES6

import tks from 'zr-toolkits'
tks.times(3.2, 5)

CommonJS

var tks = require('zr-toolkits');
tks.times(3.2, 5)

AMD

require(['zr-toolkits'],function(tks){
 tks.times(3.2, 5)
})

CMD

seajs.use('zr-toolkits',function(undefined){
    //插件没有遵循CMD规范,这里的tks是全局的
    tks.times(3.2, 5)
});

直接引入

//  dist目录下的zr-toolkits.min.js
<script src="zr-toolkits.min.js"></script>
tks.times(3.2, 5)

数据操作

isEmptyString

方法用途参数说明类型是否必传默认值返回值
判断一个字符串是否为空value需要判断的值string | undefined | nulltrue-boolean

isObject

方法用途参数说明类型是否必传默认值返回值
判断一个值是否为对象value需要判断的值anytrue-boolean

isEmptyObject

方法用途参数说明类型是否必传默认值返回值
判断一个对象是否为空obj需要判断的值Objecttrue-boolean

deWeightThree

方法用途参数说明类型是否必传默认值返回值
对数组对象去重arr需要去重的数组Arraytrue-Array
key根据key值去重stringtrue-

代码示例

let Arr1 = [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'b',id: 2}, {name: 'c',id: 3}];
let Arr2 = deWeightThree(Arr, "name");
let Arr3 = deWeightThree(Arr, "id");
console.log(Arr2)	//  [{name: 'a',id: 1}, {name: 'b',id: 2}, {name: 'c',id: 3}]
console.log(Arr3)	//  [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'c',id: 3}]

searchValueInTree

方法用途参数说明类型是否必传默认值返回值
递归查询树结构的是否存在某一个值arr需要查找的数组Arraytrue-boolean
keyName要查找的键名stringtrue-
keyValue需要查找的值anytrue-
multilevelName树结构内,包含子数组的对象名stringfalsechildren

代码示例

 const Arr = [
     {
         id: 123,
         children: [
             {
                 id: 789,
                 children: []
             }
         ]
     },
     {
         id: 456,
         children: [
             {
                 id: 874,
                 children: []
             }
         ]
     },
 ]
  
searchValueInTree(Arr, "id", 789, "children")	//true
searchValueInTree(Arr, "id", 99999, "children")	//false

随机操作

genUUID

方法用途参数说明类型是否必传默认值返回值
基于URL生成UUID-----例:cd205467-0120-47b0-9444-894736d873c7

genRandomID

方法用途参数说明类型是否必传默认值返回值
基于日期对象和random生成随机ID-----例:1627635706897_652

shuffleRandom

方法用途参数说明类型是否必传默认值返回值
洗牌算法随机arr需要打乱的数组Arraytrue-Array

creatRandom

方法用途参数说明类型是否必传默认值返回值
在一个范围内生成随机数min范围最小值numbertrue-number
max范围最大值numbertrue-
exactnumberfalse0

randomRange

方法用途参数说明类型是否必传默认值返回值
生成随机数字+英文字母的字符串min生成长度为 min 的字符numbertrue-string
max生成长度为 min - max 的字符numberfalse-
randomType类型RandomType1 A-Z、a-z、0-92 A-Z、a-z3 0-94 A-Z5 a-zfalse1
tks.randomRange(6)	// IjvHko
tks.randomRange(6, 10)	//SxNTod71uB
tks.randomRange(6, 10)  //LYTSbP3
tks.randomRange(6, 10)  //ZeE3F09K
tks.randomRange(6, 6, 1)  //Mgy28A
tks.randomRange(6, 6, 2)  //IcmCIW
tks.randomRange(6, 6, 3)  //932731

字符串操作

getUrlParamsValue

方法用途参数说明类型是否必传默认值返回值
获取url字符串上的参数url链接stringtrue-string | null
key需要获取的参数的键名stringtrue-

trim

方法用途参数说明类型是否必传默认值返回值
去除字符串前后空格str字符串stringtrue-string
trimType切割类型TrimType1 去除所有空格2 去除前后空格3 去除前空格4 去除后空格false2

changeCase

方法用途参数说明类型是否必传默认值返回值
大小写转化str字符串stringtrue-string
caseType转换类型CaseType1 首字母大写2 首字母小写3 大小写互换4 全部大写5 全部小写false3

正则校验

isEmail

方法用途参数说明类型是否必传默认值返回值
校验邮箱格式str字符串stringtrue-boolean

isMobilePhone

方法用途参数说明类型是否必传默认值返回值
校验手机号码格式str字符串stringtrue-boolean

isTelephone

方法用途参数说明类型是否必传默认值返回值
校验座机号码格式str字符串stringtrue-boolean

strictCheckIDCard

方法用途参数说明类型是否必传默认值返回值
严格校验身份证sId字符串stringtrue-boolean

regCheckString

方法用途参数说明类型是否必传默认值返回值
正则校验合集str字符串stringtrue-string
checkStringKey转换类型CheckStringKey'phone' 手机号码'tel' 座机'card' 身份证'pwd' 密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线'postal' 邮政编码'QQ' QQ号码'email' 邮箱'money' 金额(小数点2位)'URL' 网址'IP' IP地址'number' 数字'english' 英文'chinese' 中文'lower' 小写'upper' 大写'HTML' HTML标记true-

日期操作

formatMs

方法用途参数说明类型是否必传默认值返回值
将时间戳转换成 yyyy/MM/dd hh:mm:ssms时间戳numbertrue-string例:2021/11/30 14:10:09
hour12是否12小时制booleanfalsefalse例:2021/11/30 02:10:09

calculateTimeDifference

方法用途参数说明类型是否必传默认值返回值
计算两个时间戳的时间差。可用来实现倒计时功能endTime结束时间numbertrue-TimeDifference{ day: 01, 天 hour: 07, 时 min: 34, 分 sec: 24, 秒 over: false 是否结束(当开始时间等于结束时间)}
startTime开始时间numberfalse+new Date()当前系统时间戳
justHour是否计算至天数booleanfalsefalse

代码示例

//倒计时功能
const { calculateTimeDifference } = tks;
const endtime = 1639059397000;
setInterval(()=>{
    const timeObj = tks.calculateTimeDifference(endtime);
    const timeString = `剩余 ${timeObj.day}天 ${timeObj.hour}小时 ${timeObj.min}分 ${timeObj.sec}秒`;
    console.log(timeObj);		//	{day: '01', hour: '05', min: '47', sec: '55', over: false}
    console.log(timeString);	//	剩余 01天 05小时 47分 55秒
}, 1000)


//不想显示天数
const { calculateTimeDifference } = tks;
const endtime = 1639059397000,
      startTime = 1638951397000;
setInterval(()=>{
    const timeObj = tks.calculateTimeDifference(endtime, startTime, true);
    const timeString = `剩余 ${timeObj.day}天 ${timeObj.hour}小时 ${timeObj.min}分 ${timeObj.sec}秒`;
    console.log(timeObj);		//	{day: undefined, hour: '29', min: '42', sec: '40', over: false}
    console.log(timeString);	//	剩余 29小时 42分 40秒
}, 1000)
  

数字操作

formatMoney

方法用途参数说明类型是否必传默认值返回值
格式化金额num需要格式的数字string | numbertrue-string例:152,552.25
precision精确到几位小数numberfalse2

makePercent

方法用途参数说明类型是否必传默认值返回值
将小数转化成百分数num需要转化的数字string | numbertrue-string例:42.44%
precision精确到几位小数numberfalse2

plus

方法用途参数说明类型是否必传默认值返回值
两个数精确相加num1数字numbertrue-nulber
num2数字numbertrue-

minus

方法用途参数说明类型是否必传默认值返回值
两个数精确相减num1数字numbertrue-nulber
num2数字numbertrue-

times

方法用途参数说明类型是否必传默认值返回值
两个数精确相乘num1数字numbertrue-nulber
num2数字numbertrue-

divide

方法用途参数说明类型是否必传默认值返回值
两个数精确相除num1数字numbertrue-nulber
num2数字numbertrue-

系统API

phoneCall

方法用途参数说明类型是否必传默认值返回值
唤起系统打电话功能receiver打给谁stringtrue--

sendMessage

方法用途参数说明类型是否必传默认值返回值
唤起系统短信功能receiver发给谁stringtrue--

sendEmail

方法用途参数说明类型是否必传默认值返回值
唤起系统发邮件功能receiver发给谁stringtrue--

share

方法用途参数说明类型是否必传默认值返回值
调用系统分享shareOptions分享参数ShareOptionsurl {string} 分享的链接title {string} 分享的标题text {string} 分享的正文内容files { File } 分享的文件listtrue{}Promise

notify

方法用途参数说明类型是否必传默认值返回值
带图带事件的桌面通知title通知的标题stringtrue{}-
options参数和事件参考NotificationOptionsfalse{}
eventshttps://developer.mozilla.org/zh-CN/docs/Web/API/notificationNotificationEventMapfalse-

captureVideo

方法用途参数说明类型是否必传默认值返回值
视频截图videoElvideo标签HTMLVideoElementtrue-string

发布订阅模式

useObserver

暴露的方法方法用途入参参数类型参数说明
once只订阅一次主题eventNamecallbackstring(res) => viod事件名称回调函数,接收emit的传参payload
on订阅主题eventNamecallbackstring(res) => viod事件名称回调函数,接收emit的传参payload
off某一个观察者取消订阅主题(通过传入on的回调函数取消)eventNameonMethodCallbackstringFunction事件名称on的回调函数
emit主题发布,触发各观察者的回调eventNamepayloadstringany事件名称传递的参数
remove移除一个主题eventNamestring事件名称
// 电台 (主题)
const { once, on, off, emit, remove } = tks.useObserver();
const musicList = ["七里香", "暧昧", "冠军", "小丑"];
const timer = setInterval(() => {
	let randomIdx = tks.creatRandom(0, 3)
	emit("musicPlay", musicList[randomIdx])	//电台每2秒发布一次内容
}, 2000)

setTimeout(()=>{
	remove("musicPlay")	//30秒后关闭电台。
	clearInterval(timer)
}, 30000)
// 网易云音乐 (观察者)
const { once, on, off, emit, remove } = tks.useObserver();
const callBack = (res) => {
	console.log("网易云音乐", res);
}
on("musicPlay", callBack);	//网易云订阅电台
setTimeout(() => {
	off("musicPlay", callBack)	//10秒后网易云取消订阅电台。但此时电台还在播报
}, 10000)
// QQ音乐 (观察者)
const { once, on, emit, remove } = tks.useObserver();
const callBack = (res) => {
	console.log("QQ音乐", res);
}
on("musicPlay", callBack)	//QQ音乐订阅电台

其他

syncLoadScript

方法用途参数说明类型是否必传默认值返回值
异步加载script标签srcscript标签srcstringtrue--
callback加载完成的回调函数Functionfalse-

isPC

方法用途参数说明类型是否必传默认值返回值
当前设备是否为PC---false-boolean

isIOS

方法用途参数说明类型是否必传默认值返回值
当前设备是否为IOS---false-boolean

isAndroid

方法用途参数说明类型是否必传默认值返回值
当前设备是否为Android---false-boolean

downloadByUrl

方法用途参数说明类型是否必传默认值返回值
通过url下载文件url下载链接stringtrue--
fileName生成的文件名stringfalse'download'

downloadByBob

方法用途参数说明类型是否必传默认值返回值
下载流文件blob文件流Blobtrue--
fileName生成的文件名stringfalse'download'

copyToClipboard

方法用途参数说明类型是否必传默认值返回值
将内容复制到剪切板str复制的内容stringtrue--

hasClass

方法用途参数说明类型是否必传默认值返回值
判断某个元素是否含有某个classel目标元素HTMLElementtrue-boolean
className类名stringtrue-

getScrollPosition

方法用途参数说明类型是否必传默认值返回值
获取当前元素的滚动条滚动位置el目标元素HTMLElementtrue-boolean

watchVisibility

方法用途参数说明类型是否必传默认值返回值
监听用户是否离开当前窗口(切换后台)onHide隐藏回调Functionfalse--
onShow显示回调Functionfalse-

disableWindowEvent

方法用途参数说明类型是否必传默认值返回值
禁止右键、选择、复制------

License

MIT

2.1.5

2 years ago

2.1.4

2 years ago

2.1.3

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.0

2 years ago

2.0.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago