ty-tools v2.3.0
注意:2.x.x部分方法不再兼容1.x.x!
工具包
定义工具包tyTools,将常用的方法封装。
debounce
函数防抖,触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间
tyTools.debounce<T>(func:Function,time?:Number,immediate?:Boolean):T
接收三个参数,第一个为要执行的函数,第二个可选参数,为延时秒数,默认200ms,第三个为是否立即执行一次;返回要执行的函数
throttle
函数节流
tyTools.throttle<T>(func:Function,time?:Number):T
接收两个参数,第一个为要执行的函数,第二个可选参数,为延时秒数,默认200ms;返回要执行的函数
forEach
遍历数组和对象
tyTools.forEach<T>(val: any[] | Record<string, any> | Record<string, any>, fn: (item: T, index: any, obj: any) => void | boolean): void
tyTools.validate
tyTools.validate
返回一个对象:包含以下校验方法:tyTools.validate.checkIdCardNumber
tyTools.validate.checkIdCardNumber(str:string|number):boolean
检测传入的身份证号码是否合法
tyTools.validate.checkPhoneNumber
tyTools.validate.checkPhoneNumber(str:string|number):boolean
检测传入的手机号码是否合法
tyTools.validate.isFloatNumber
tyTools.validate.isFloatNumber(str:string|number):boolean
小数数字校验
tyTools.validate.isIntNumber
tyTools.validate.isIntNumber(str:string|number):boolean
整数数字校验
tyTools.validate.checkUnifiedSocialCreditCode
tyTools.validate.checkUnifiedSocialCreditCode(str:string):boolean
统一社会信用代码校验
tyTools.validate.isNoSpechars
tyTools.validate.isNoSpechars(str:string):boolean
特殊字符校验,包括以下字符:
const regEn = /[`~!@#$%^&*()_+<>?:"{},./;'[\]]/img const regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/img
tyTools.validate.checkEmail 邮箱校验
tyTools.validate.checkEmail(str: string): boolean
tyTools.validate.checkBankCardNumber
银行卡校验
tyTools.validate.checkBankCardNumber(str: string) :boolean
isNumber
数字校验
tyTools.validate.isNumber(num: number | string)
isTruthy
tyTools.validate.isTruthy(data: any)
isString
是否是字符串
tyTools.validate.isString(str: any): boolean
isArray
是否是数组
tyTools.validate.isArray(isArr: any): boolean
isArrayLike
是否是类数组
tyTools.validate.isArrayLike(isArr: any): boolean
isFunction
是否是函数
tyTools.validate.isFunction(isArr: any): boolean
isObject
是否是object
tyTools.validate.isObject(isArr: any): boolean
isBaseType
是否是基本类型
tyTools.validate.isBaseType(isArr: any): boolean
tyTools.equipment
tyTools.equipment
返回一个对象:包含以下校验方法:tyTools.equipment.isIOS
tyTools.equipment.isIOS():boolean
检测当前设备是否是ios
tyTools.equipment.isMobile
tyTools.equipment.isMobile():boolean
检测当前设备是否是移动端
tyTools.platform
tyTools.platform
返回一个对象:包含以下校验方法:tyTools.platform.isWeChat
tyTools.platform.isWeChat():boolean
检测当前平台是否是微信
tyTools.platform.client
浏览器版本检测
tyTools.platform.client():{ engine: { ie: string; gecko: string; webkit: string; khtml: string; opera: string; ver: string; }; browser: { ie: string; firefox: string; safari: string; konq: string; opera: string; chrome: string; ver: string; }; }
tyTools.dom
tyTools.dom.isDomInView
tyTools.dom.isDomInView(config: { dom: Element; change(data: { data: boolean }): void; })
dom元素是否在视野内
tyTools.dom.addEvent
tyTools.dom.addEvent(dom: any, types: any, handle: any, bm: any): void
添加事件
tyTools.dom.removeEvent
tyTools.dom.removeEvent(dom: any, types: any, handle: any, bm: any): void
移除事件
getAllStyle
tyTools.dom.getAllStyle(dom: any): CSSStyleDeclaration
获取计算样式
getDomSPInfo
tyTools.dom.getDomSPInfo(dom: Element): any
获取元素大小及其相对于视口的位置。(size——position)
fixedToTop
tyTools.dom.fixedToTop(obj: { dom: string; topLength?: string; fixed?: Function; concelFixed?: Function; }): void
元素滚动到顶部自动吸附
spaceBetween
tyTools.dom.spaceBetween(parentDom: HTMLElement): void
实现弹性盒子space-between
scrollDirection
tyTools.dom.scrollDirection( data: { change: (data: { event: Event, direction: { X: number, Y: number } }) => void, config?: AddEventListenerOptions } ): { removeEvent: () => void }
获取滚动的方向 下为正
tyTools.date
format
//str为格式化字符串 tyTools.date.format(str: string, date?: Date): string;
getDateObj
获取时间对象
tyTools.date.tyTools.getDateObj(str?: string | number)
返回值Date实例 参数默认为当前时间
getDateArr
获取时间数组
tyTools.date.getDateArr()
返回值:YYYY,MM,DD
getDayCount 获取传入时间所在月有几天
tyTools.date.getDayCount(data)
isOutOfDate
是否过期 true:过期 false :未过期
tyTools.date.isOutOfDate(time1: string, time2?: string): boolean
cutDown 倒计时
tyTools.date.cutDown(start: number | string, end: number | string): string | boolean
tyTools.math
add
// 加法,解决js小数计算精度问题 0.2+0.1=0.30000000000000004 tyTools.math.add(...numArr: number[]): number
subtr
//减法,解决js小数计算精度问题 0.3-0.2=0.19999999999999998(第一个参数依次减去后边所有的参数) tyTools.math.subtr(...numArr: number[]): number
multiply
//乘法,解决js小数计算精度问题 0.3*3=0.8999999999999999 tyTools.math.multiply(...numArr: number[]): number
divide
//除法,解决js小数计算精度问题 0.3/3=0.09999999999999999(第一个参数依次除以后边所有的参数) tyTools.math.divide(...numArr: number[]): number
tyTools.file
PictureZip
constructor({ file, max = 200, ratio = 0.5 }: { file: File, max?: number, ratio?: number })
file:File|FileList // 文件|文件列表 max:number //超过该值以后压缩 ratio:number //压缩率
// 示例 new tyTools.file.PictureZip({ file: this.files, ratio: 0.1 }).promise.then((res) => { //如果file类型为File,则返回压缩后的base64字符串;如果file类型为FileList,则返回base64组成的数组 console.log(res); })
tyTools.data
merge
tyTools.data.merge(conf1: any, conf2: any,checkFalsey?: boolean): any
合并两个对象;递归合并;返回一个clone后的新对象;conf2合并到conf1 如果conf2某个属性为undefined或者为null,则取conf1的值;如果conf1没有,则取conf2的值 checkFalsey若为true,将判断falsely值而不是undefined或者null
jsonClone
数据克隆
tyTools.data.jsonClone(data)
接收要克隆的数据,返回克隆后的数据
dataListMerge
数据合并
tyTools.data.dataListMerge(data1,data2,key)
根据key字段,合并data1和data2数组
removeEmptyItem
移除数组/对象的undefined或者null值
tyTools.data.removeEmptyItem(arr: any[]|Record<string, any>,keepEmptyString=false):any[]|Record<string, any>
keepEmptyString:是否保留空串
midHide
数据隐藏
tyTools.data.midHide('12345678901',3,3) // 123*****901
该方法接收三个参数,第一个目标字符串为必填参数,第二个开头显示的字符数为选填,第三个末尾显示的字符数为选填,默认为首3尾4。
getDeepDataItem
获取深层数组包含某个key值的对象
tyTools.data.getDeepDataItem(target: any[], key: string, val: any): any
firstUpperCase
首字母大写
tyTools.data.firstUpperCase(str: string): string
getItemByKey
获取数组里面包含某个key值的对象
tyTools.data.getItemByKey(arr: any[], key: string, value: any): any
objectToQueryString
将对象转化成查询参数
tyTools.data.tyTools.objectToQueryString({ a: 12, b: 3 }) // a=12&b=3
urlStringToObj
URL字符串转化为对象
tyTools.data.urlStringToObj('localhost:8080/as?a=1&b=2') // {a: "1", b: "2"}
toFixed
tyTools.data.toFixed(val: string | number, length = 2)
setSessionStorage
sessionstorage里面存数据
tyTools.data.setSessionStorage('userData',{:name:'john'})
接收两个参数,第一个参数为key值,第二个参数为value值。
getSessionStorage
sessionstorage里面取数据
tyTools.data.getSessionStorage('userData')
接收一个参数,要获取的数据的key值
escape
字符串编码
tyTools.data.escape('http://localhost:8080/#/') // http%3A//localhost%3A8080/%23/
unescape
字符串解码
tyTools.data.unescape('http%3A//localhost%3A8080/%23/') // http://localhost:8080/#/
initObj
初始化对象参数
tyTools.data.initObj(target: any, val?: any)
接收两个参数,第一个为要修改的目标对象,第二个为对比参数,target要置为val的值。若不传第二个参数,默认置为''
bankNumberFormat
格式化银行卡账号
tyTools.data.bankNumberFormat(str)
返回由空格隔开的银行卡号码:1111 2222 3323 3432 2434
currencyFormat
金额格式化
tyTools.data.currencyFormat('1231312') // 1,231,312.00
DelCurrencyFormat
删除千位符
tyTools.data.DelCurrencyFormat('1,231,312.00') // 1231312.00
convertCurrency
金额大写
tyTools.data.convertCurrency('1231312') // 壹佰贰拾叁万壹仟叁佰壹拾贰元整
- tyTools.event getEvent
获取事件对象
// 示例 tyTools.event.getEvent(e):Event
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago