k-jstoollib
v1.0.5
Published
KY前端工具方法库。使用方式 npm install k-jstoollib
Downloads
9
Readme
k-jstoollib
金融业务工具方法库
目的:开发中常用的工具函数, 轻松提高业务研发效率.。
安装使用
- 使用npm安装
npm:
$ npm i k-jstoollib
webpack、RequireJS、SeaJS等
// 完整引入
import jstoollib from 'k-jstoollib'
// 挂载到全局
Vue.prototype.$jstoollib = jstoollib;
// 使用
this.$jstoollib.xxx()
推荐使用方法
你真的不需要完整引入所有函数,所以只引入需要使用的方法即可。
import { xxx } from 'k-jstoollib'
// 使用,直接调用方法
方法名()
API文档
Base
- getType - 用于获取变量的数据类型
// obj 变量
getType(obj)
- isString - 是否字符串
// o 变量参数
isString(o)
- isNumber - 是否数字
// o 变量参数
isNumber(o)
isBoolean
- 是否Boolean
// o 变量参数
isBoolean(o)
- isFunction - 是否函数
// o 变量参数
isFunction (o)
- isNull - 是否为Null
// o 变量参数
isNull (o)
- isUndefined - 是否为undefined
// o 变量参数
isUndefined (o)
Array
- arrayToTree - 一维数组转换为树形数据数组格式
/**
* @param arr 原始数据
* @param id 唯一标识
* @param pid 父级唯一标识
* @param children 子集的key
*/
arrayToTree(arr, id = 'id', pid = 'pid', children = 'children')
- treeToArray - 将树形数据数组转换为一维数组
/**
* @param tree 数据
* @param children 子集的key值
*/
treeToArray(tree, children = 'children')
- arrayIntersection - 获取两个数组的交集
// arrA, arrB 数组
arrayIntersection(arrA, arrB)
- arrayUnion - 获取两个数组的并集
// arrA, arrB 数组
arrayUnion(arrA, arrB)
- arraySubtraction - 获取两个数组的差集
// arrA, arrB 数组
arraySubtraction (arrA, arrB)
- getAnItemInArray - 获取数组中某一属性的集合
/**
* 获取数组中该属性的集合
* @param data 原始数据
* @param key 要获取的属性key
* @returns {*}
*/
getAnItemInArray(data, key)
- getSelectAllItem - 根据选中的数据从原始数组获取对应的其他属性
/**
* 根据选中的数据从原始数组获取对应的其他属性
* @param {array} selArr 为选中的数据code
* @param {array} arr 为下拉框绑定的数据
* @param {string} code selArr中的元素 与 arr中对应的属性
* @param label label没有传,返回选中的数据所有属性数组,传了label,只获取label属性的数组
* @returns [object]
*/
getSelectAllItem(selArr, arr, code, label)
- arrIncludeValue - 数组是否包含某值
/**
* 数组是否包含某值
* @param {Array} arr 数组
* @param value 值,目前只支持 String,Number,Boolean
*/
arrIncludeValue(arr, value)
- arrRemoveRepeat - 普通数组去重
// arr 数组
arrRemoveRepeat(arr)
- objArrRemoveRepeat - 对象数组去重
/**
* 对象数组去重
* @param array 要去重的数组
* @param key 要去重的对象属性值
*/
objArrRemoveRepeat (array, key)
- arrSort- 数组排序
/**
* 数组排序
* @param {Array} arr 数组
* @param {Boolean} ascendFlag 升序,默认为 true
*/
arrSort(arr, ascendFlag = true)
- isArrayEqual - 判断两个数组是否相等
// arrA, arrB 数组
isArrayEqual(arrA, arrB)
- maxArray - 获取数组中的最大值
// arr 数组
maxArray(arr)
- minArray - 获取数组中的最小值
// arr 数组
minArray(arr)
- arrayAverage- 计算数组平均值
// arr 数组
arrayAverage(arr)
- filterspecifiedVal - 排除多个指定值返回筛选之后的数组
/**
* 排除多个指定值返回筛选之后的数组
* @param arr 原数据数组
* @param excludeValues 包含指定值的数组
* @returns {*}
*/
filterspecifiedVal(arr, excludeValues)
- findIndexInArr - 返回数组中指定元素的下标
/**
* 返回数组中指定元素的下标
* @param {Array }arr 数组
* @param data 要判断的数据
* @param code 对象数组需要传要查找数据对应的key值
*/
findIndexInArr (arr, data, code)
- getObjectByOnlyCode, // 根据唯一标识获取所属对象
/**
* 根据唯一标识获取所属对象
* @param nodes 原始数据
* @param code 唯一标识
* @param {string} codeName 唯一标识的keyName
* @returns {*|{}}
*/
getObjectByOnlyCode(nodes, code, codeName = 'value')
- modifyKeyValue - 遍历树-修改树内指定节点kv
/**
* @param objAry 数据
* @param key 键值
* @param newkey 新键值
*/
modifyKeyValue(objAry, key, newkey)
Cookie
String
- cutString - 截取指定字节的字符串
/**
* 截取指定字节的字符串
* @param str 要截取的字符穿
* @param len 要截取的长度,根据字节计算
* @param suffix 截取前len个后,其余的字符的替换字符,一般用“…”, 非必传
* @returns {*}
*/
cutString(str,len,suffix)
- substring - 截取指定长度的字符串
/**
* 截取指定长度的字符串
* @param str 字符串
* @param start 起始索引
* @param length 截取长度
* @returns {string}
*/
subString(str, start, length)
- beforeStrSub - 截取指定字符之前的字符串
/**
* @param str
* @param char
*/
beforeStrSub(str, char)
- afterStrSub - 截取指定字符之后的字符串
/**
* @param str
* @param char
*/
afterStrSub(str, char)
- transFormat - 可以替换任意数字和符号
/**
* 可以替换任意数字和符号
* @param {string} str 表示将要替换的字符串
* @param {string} l 表示将要替换的字符
* @param {string} r 表示被替换的字符
*/
transFormat (str, l, r)
- insertStr - 在字符串指定位置插入字符
/**
* @param character 原字符串
* @param site 要插入的字符的位置
* @param newStr 想要插入的字符
*/
insertStr(character, site, newStr)
- keyCharacterMap - 字符串反转处理分割
/**
* 字符串反转处理分割
* @param str 原字符串
* @param under 根据什么字符处理
* @param event 使用什么字符把处理结果分割
*/
keyCharacterMap (str,under,event)
- judgeStrHave - 查找指定的字符或者字符串是否存在
/**
* str 将要查找的字符串
* queryStr 在字符串中查找的字符或字符串片段
* 如果在字符串中有这个字符或者字符串,返回1,否则返回-1
*/
judgeStrHave(str,queryStr)
- strOmit - 字符串按照长度显示省略号
/**
* 字符串省略,超出部分显示 ’...‘
* @param {*} str 字符串
* @param {*} n 保留字符0到n
*/
strOmit(str, n)
Function
- debounce - 用于防抖动,防止函数在短时间内连续多次调用
/**
* 用于防抖动,防止函数在短时间内连续多次调用。
* @param func
* @param wait 时间
* @returns {(function(): void)|*}
*/
debounce(func, wait)
- throttle - 用于节流,防止函数在短时间内频繁调用
/**
* 用于节流,防止函数在短时间内频繁调用
* @param func
* @param wait
* @returns {(function(): void)|*}
*/
throttle(func, wait)
- delay- 延时执行
- randomInt - 用于生成指定范围内的随机整数
// min max 生成指定随机数的范围
randomInt(min, max)
- randomStr - 生成指定个数的随机字符串
// n 字符串长度, str: 组成字符串单词
randomStr(n, str)
- randomHexColorCode - 随机十六禁止颜色
randomHexColorCode()
Date
- formatDate - 格式化日期:yyyy-MM-dd
formatDate(date)
- formatOtherDate - 根据需要的格式 转换日期格式
// formateType: yy-mm-dd、yymmdd 等
formatOtherDate(dateS, formateType)
- getPreDate - 获取T-1的日期
getPreDate()
- getTheDatesOfWeek - 获取输入日期所在周的开始日期和结束日期
/*
* 获取输入日期所在周的开始日期和结束日期
* @param date 需要判断的日期,不传默认查询当天
*/
getTheDatesOfWeek(date)
- getMonthEndDay - 当前月份的最后一天
getMonthEndDay()
- getNowDayOfWeek - 获取输入的日期对应的星期
/**
* 获取输入的日期对应的星期
* @param data String 不传默认查当天
*/
getNowDayOfWeek(data)
- getDaysBetween - 判断输入的两个 日期间隔几天
/**
* 判断输入的两个 日期间隔几天
* @param startDate 开始日期 yyyy-MM-dd
* @param enDate 结束日期 yyyy-MM-dd
* @returns {number} 两日期相差的天数
*/
getDaysBetween (startDate, enDate)
- getWeekOnMonth - 获取输入的日期属于当月的第几周
/**
* 获取输入的日期属于当月的第几周
* @param date 输入的日期 不传默认查当天
*/
getWeekOnMonth(date)
- getWeekNumOnYear - 获取输入的日期属于当年的第几周
/**
* 获取输入的日期属于当年的第几周
* @param date 不传默认查当天
* @returns {number}
*/
getWeekNumOnYear(date)
- getWeekRange - 获取某个日期所在周的日期范围
/**
* 获取某个日期所在周的日期范围
* @param d 注意日期格式 不传查当天
* @returns {Date[]}
*/
getWeekRange(d)
- getDayNumOfYear - 获取某个日期是当年中的第几天
/**
* 获取某个日期是当年中的第几天
* @param val
* @returns {number} 必传
*/
getDayNumOfYear(val)
- getMonthRange - 获取某个日期所在月的日期范围
/**
* 获取某个日期所在月的日期范围
* @param d 注意日期格式 不传查当天
* @returns {Date[]}
*/
getMonthRange(d)
- getQuarterRange - 获取某个日期所在季度的日期范围
/**
* 获取某个日期所在季度的日期范围
* @param d 日期为 yy-mm-nn
* @returns {Date[]}
*/
getQuarterRange(d)
- pickerOptionslimit - element 日期选择组件 限制日期选择
/*
* element 日期选择组件 限制日期选择
* @param type: 1=> T-1
* @param type: 2=>T
* @param type:3=>当前month
*/
pickerOptionslimit(type)
- getNDaysAroundDate - 获取指定时间N天前/后的日期
/**
* @param date 日期,不传查当天
* @param n 默认为0
*/
getNDaysAroundDate(date, n)
- isLeapYear - 判断是否为闰年
// year 年
isLeapYear(year)
- getHoursBetweenDates - 获取两个日期之间的小时数
// date1 date2 两个日期
getHoursBetweenDates(date1, date2)
- isDateInRange - 判断一个日期是否在指定日期范围内
/**
* 判断一个日期是否在指定日期范围内
* @param date 输入的日期
* @param start 日期范围的开始日期
* @param end 日期范围的结束日期
* @returns {boolean}
*/
isDateInRange(date, start, end)
- isWeekday - 判断某个日期是否为工作日
// date 日期
isWeekday(date)
- getNextWeekday - 计算某个日期的下一个工作日
/**
* 计算某个日期的下一个工作日(周一至周五)
* @param date
* @returns {Date}
*/
getNextWeekday(date)
- getlastFirday - 获取相对于今天,上周五的日期
getlastFirday()
- getLastYearYesterDay - 相对于今天t-1日,获取N年前的日期
// 获取n年前的t-1 日
getLastYearYesterDay(yearNum = 1)
- getDatesNDaysAgo - 根据当前日期,获取n天前的日期
/**
* 根据当前日期,获取n天前的日期
* @param n
* @returns {Date}
*/
getDatesNDaysAgo(n)
- getLastYearEndDate - 获取去年年末日期
getLastYearEndDate()
- getDaysByTheMonth - 判断输入的月份当月共多少天
/**
* 判断输入的月份当月共多少天
* @param {string} year 年份
* @param {string} month 月份
*/
getDaysByTheMonth(year, month)
- getRecentMonth - 获取最近N月的日期
// n {number} 数值
getRecentDay(n)
- getRecentDay - 获取最近N天的日期
// n {number} 数值
getRecentMonth(n)
Object
Regexp
- isPhoneNumber - 判断是否为有效的手机号码
/**
* @param phone
* @returns {boolean}
*/
isPhoneNumber(phone)
- isEmail - 判断是否为有效的邮箱地址
/**
* @param email
* @returns {boolean}
*/
isEmail(email)
- isUrl - 判断是否为有效的 URL 地址
/**
* @param url
* @returns {boolean}
*/
isUrl(url)
- isIDCard - 判断是否为有效的身份证号码
/**
* @param idCard
* @returns {boolean}
*/
isIDCard(idCard)
- isDate - 判断是否为有效的日期格式
/**
* 判断是否为有效的日期格式: yy-mm-dd
* @param dateString
* @returns {boolean}
*/
isDate(dateString)
- isIP - 判断是否为有效的 IP 地址
/**
* 判断是否为有效的 IP 地址:
* @param ipAddress
* @returns {boolean}
*/
isIP(ipAddress)
- checkLetter - 判断是否是字母
/**
* 判断是否是字母
* @param {string} data
*/
checkLetter(data)
- ischinese - 校验是否中文组成
/**
* @param str
* @returns {boolean}
*/
ischinese(str)
FormatDisplay
- _toLittleCamel - 字符串:'-'连接命名转换成小驼峰命名
/**
* 字符串:'-'连接命名转换成小驼峰命名
* @param str
* @returns {string|*}
*/
_toLittleCamel(str)
- _toBigCamel - 字符串:'-'连接命名转换成大驼峰命名
/**
* 字符串:'-'连接命名转换成大驼峰命名
* @param str
* @returns {string|*}
* @private
*/
_toBigCamel(str)
- camelTo_ - 字符串:驼峰命名转换成'-'连接命名 /**
- 字符串:驼峰命名转换成'-'连接命名
- @param str
- @returns {string}
- @private */
camelTo_(str)
- strTrim - 去除字符串中的空格
/**
* JS去除字符串中的空格
* @param str
* @param type 1-所有空格 2-前后空格 3-前空格 4-后空格 默认2
* @returns {string}
*/
strTrim(str, type)
- formatMobile - 手机号格式化显示
/**
* 手机号格式化显示
* @param mobile String
* @returns {string}
*/
formatMobile(mobile)
- keepDecimalNoRound - 保留n位小数,不够补0, 不四舍五入
/**
* 将number保留bitNum位小数,不够补0, 非四舍五入
* @param number 数据
* @param bit 小数点位数 默认保留两位小数
* @returns {string|number} 返回值为 String,可使用parseFloat转换为Number
*/
keepDecimalNoRound(number, bit)
- keepDecimalround - 保留n位小数,不够补0, 四舍五入
/**
* 将value保留bit位小数,不够补0, 四舍五入
* @param number 数据
* @param bit 小数点位数
* @returns {string} 返回的结果为字符串 可使用parseFloat转换为Number
*/
keepDecimalround(number, bit)
- titleCaseStr - 字符串首字母大写
/**
* 字符串首字母大写
* @param {string} 参数为字符串 解构为数组
* @returns {string}
*/
titleCaseStr(str)
- titleLowercaseStr - 字符串首字母小写
/**
* 首字母小写
* @param {string}参数为字符串 解构为数组
* @returns {string}
*/
titleLowercaseStr(str)
- capitalizeEveryWord - 字符串由空格间隔的每个单词首字母大写
/**
* 字符串由空格间隔的每个单词首字母大写
* @param str
*/
capitalizeEveryWord(str)
- toPoint - 百分数转小数
/**
* 百分数转小数
* @param {string} percent 百分数
* @param {number} places 小数保留几位小数 默认保留两位小数
* @returns {number}
*/
toPoint(percent, places)
- toPercent - 小数转百分数
/**
* 小数转百分数
* @param {number} point 小数
* @param {number} places 百分数保留几位小数 默认不保留小数
* @returns {string}
*/
toPercent(point, places)
金额转换
- moneyFormat - 金额千分位转换
/**
* 金额千分位转换
* @param {Number} number:要格式化的数字
* @param {number} decimals:保留几位小数
* @param {string} dec_point:小数点符号
* @param {string} thousands_sep:千分位符号
*/
moneyFormat(number, decimals, dec_point, thousands_sep)
- convertCurrency - 大写金额转换
/**
*
* @param money 金额
* @returns {string} 返回字符串大写金额
*/
convertCurrency(money)
- delThousands - 金额去除千分位
/**
* @description 去除千分位
*@param{Object}num
*/
delThousands(num)
- toCurrency - 简单的货币单位转换
/**
* 简单的货币单位转换
* @param n 金额
* @param curr 单位
* @param LanguageFormat 语言
* @returns {string}
*/
例如:
/*
toCurrency(123456.789, 'EUR'); // €123,456.79
toCurrency(123456.789, 'USD', 'en-us'); // $123,456.79
toCurrency(123456.789, 'USD', 'fa'); // ۱۲۳٬۴۵۶٫۷۹
toCurrency(322342436423.2435, 'JPY'); // ¥322,342,436,423
*/
toCurrency = (n, curr)
- unitConversion - 单位转换方法
/**
* @description: 单位转换方法
* @param {*} moneyV 金额
* @param {*} thousandthV 是否需要千分位转换,默认为 true
* @param {*} unitV 单位长度,如果传入该参数,则不会根据金额长度计算单位长度,而是直接使用传入的单位长度作为单位长度
* @param {*} fixedV 小数位数,数组,长度为 5,分别对应元、万元、亿元、万亿元、千万亿的小数位数,默认为 [2, 2, 4, 4, 4]
* @param {*} unitNameV 单位名称,数组,长度为 5,分别对应元、万元、亿元、万亿元、千万亿的单位名称,默认为 ['元', '万元', '亿元', '万亿元', '千万亿']
* @return {*} String
*/
/**
* * 使用示例:
* utils.unitConversion(123456789.123456789) => 12,3456.7891万元
* utils.unitConversion(12345678912345.6789) => 123,4567.8912亿元
* utils.unitConversion(123456789123456789.123456789) => 123,4567.8912万亿元
*
* object 参数使用示例:
* utils.unitConversion({
* money: 123456789.123456789,
* thousandth: true,
* unit: 4,
* fixed: [2, 2, 4, 4, 4],
* unitName: ['元', '万元', '亿元', '万亿元', '千万亿']
* }) => 12,3456.7891万元
*/
unitConversion(moneyV, thousandthV, unitV, fixedV, unitNameV)
浮点数运算
floatPointAdd - 浮点数运算 加法
floatPointSub - 浮点数运算 减法
floatPointMul - 浮点数运算 乘法
floatPointAddDiv - 浮点数运算 除法 用来得到精确的除法结果
base64
// 1.加密
// var str = '124中文内容';
// var base = new Base64();
// var result = base.encode(str);
// //document.write(result);
// //2.解密
// var result2 = base.decode(result);
// document.write(result2);
浏览器操作
- scrollToTop - 滚动到页面顶部
scrollToTop ()
- scrollToBottom - 滚动到页面底部
scrollToBottom ()
- toFullScreen - 打开浏览器全屏
toFullScreen ()
- exitFullscreen - 退出浏览器全屏
exitFullscreen()
- openWindow - 打开浏览器小窗口
/**
* @param url 浏览器地址
* @param title 打开的地址标题
* @param w 窗口宽
* @param h 窗口高
*/
openWindow (url, title, w, h)
echatrs 图表
- downChartPng - echarts图片导出