
Security News
Frontier AI Is Now Critical Infrastructure
The Fable shutdown shows how quickly model access can become a business continuity risk for AI-dependent engineering teams.
c-tools-js
Advanced tools
import Vue from 'vue'
import * as echarts from 'echarts'
import 'c-tools-js/assets/echarts/map-chinajs'
Vue.prototype.$echarts = echarts
/**
* rgb 转 hex
* @param {String} rgb 颜色 rgb(255,255,255)
* @return hex
*/
RgbToHex
/**
* hex 转 rgb 例如:'#23ff45'
* @param {String} hex 颜色
* @param {Boolean} str 是否字符串, true为数组
* @return string
*/
HexToRgb
/**
* 生成随机十六进制颜色
* @return hex
*/
RandomHex
/**
* 生成随机RGB颜色
* @return string
*/
RandomRGB
/**
* 求两个颜色之间的渐变值
* @param {string} startColor 开始的颜色
* @param {string} endColor 结束的颜色
* @param {number} step 颜色等分的份额
* */
ColorGradient
/**
* JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串
* @param {String} color 十六进制的色值
* @param {Number} alpha rgba的透明度,默认0.3
*/
ColorToRgba
/**
* 获取cookie
* @param {String} name cookie名
*/
GetCookie
/**
* 清除全部Cookie
*/
ClearCookies
/**
* 查找日期位于一年中的第几天
* @param {Date} date new Date()
* dayOfYear(new Date())
* Result: 272
*/
DayOfYear
/**
* 是否IE
*/
IsIE
/**
* 是否Edge
*/
IsEdge
/**
* 是否火狐
*/
IsFirefox
/**
* 对象是否相等
* @param {Object} a
* @param {Object} b
* @returns {Boolean}
*/
ObjectEquals
/**
* 数组是否相等
* @param {Array} arrayA
* @param {Array} arrayB
* @returns {Boolean}
*/
ArrayEquals
/**
* 数组/对象 是否相等
* @param {Array | Object} value1
* @param {Array | Object} value2
* @returns {Boolean}
*/
IsEqual
/**
* 是否为空
* @param {String} val
* @returns {Boolean}
*/
isEmpty
/**
* Comma用于分割数字,默认为3位分割,一般用于格式化金额
* @param {Number} source 数字
* @param {Int} length 分割位, 默认为3位
* Comma(21342132) // 21,342,132
* Comma(21342132, 4) // 2134,2132
* Comma(21342132.234) // 21,342,132.234
*/
Comma
/**
* Pad用于按照位数补0
* @param {Number} source 数字
* @param {Int} length 补充位, 默认为2位
* Pad(1) // 01
* Pad(234, 4) // 0234
*/
Pad
/**
* Random用于生成两个整数范围内的随机整数
* @param {Int} min 最小
* @param {Int} max 最大
*/
Random
/**
* 检查是否对象数组
* @param {Array|Object} data
* @return Boolean
*/
IsArrayObject
/**
* 检查是否对象
* @param {Array|Object} data
* @return Boolean
*/
IsObject
/**
* 检查是否函数
* @param {Array|Object} data
* @return Boolean
*/
IsFunction
/**
* 检查是否数组
* @param {Array|Object} data
* @return Boolean
*/
IsArray
/**
* 检查是否字符串
* @param {Array|Object} data
* @return Boolean
*/
IsString
/**
* 拷贝
* @param {Array | Object} obj
* @returns obj
*/
Clone
/**
* 使用递归的方式实现数组、对象的深拷贝
* @param {Array | Object} obj
* @returns obj
*/
DeepClone
/**
* JS对象深度合并
* @param {Object} target 当前对象
* @param {Object} source 合并对象
* @returns obj
*/
DeepMerge
/**
* 删除空的参数(常用于post请求)
* @param {*} obj
* @return obj
*/
DeleteNullObj
/**
* 打乱数组
* @param {Array} arr 数组
* shuffleArray([1, 2, 3, 4])
* Result: [ 1, 4, 3, 2 ]
*/
ShuffleArray
/**
* 验证手机号码
* @param {Number, String} str
*/
RegExpChinaMobile
/**
* 火车车次
* @param {Number, String} str
* 例如: G1868, D102, D9, Z5, Z24, Z17
*/
RegExpTrainNumber
/**
* 身份证号, 支持1/2代(15位/18位数字)
* 例如: 622223199912051311, 12345619991205131x, 123456991010193
*/
RegExpIDCard
/**
* 香港身份证
* @param {Number, String} str
* 例如: K034169(1)
*/
RegExpHKIDCard
/**
* 澳门身份证
* 例如: 5686611(1)
*/
RegExpMacaoIDCard
/**
* 台湾身份证
* 例如: U193683453
*/
RegExpTaiwanIDCard
/**
* 护照(包含香港、澳门)
* 例如: s28233515, 141234567, 159203084, MA1234567, K25345719
*/
RegExpPassport
/**
* 邮政编码(中国)
* 例如: 734500, 100101
*/
RegExpPostalCode
/**
* 密码强度校验,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
* 例如: Kd@curry666
*/
RegExpPassword
/**
* 用户名校验,4到16位(字母,数字,下划线,减号)
* 例如: xiaohua_qq
*/
RegExpUserName
/**
* 必须带端口号的网址(或ip)
* 例如: https://www.qq.com:8080, 127.0.0.1:5050, baidu.com:8001, http://192.168.1.1:9090 , 反例: 192.168.1.1, https://www.jd.com
*/
RegExpAddressOrIp
/**
* 网址(url,支持端口和"?+参数"和"#+参数)
* 例如: www.qq.com, https://baidu.com, 360.com:8080/vue/#/a=1&b=2
*/
RegExpAddress
/**
* 统一社会信用代码
* 例如: 91230184MA1BUFLT44, 92371000MA3MXH0E3W
*/
RegExpSocialCredit
/**
* 视频(video)链接地址
* 例如: http://www.abc.com/video/wc.avi
* 格式:swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4
*/
RegExpVideo
/**
* 图片(image)链接地址
* 例如: https://www.abc.com/logo.png
* 格式:gif|png|jpg|jpeg|webp|svg|psd|bmp|tif
*/
RegExpImage
/**
* 数字/货币金额(支持负数、千分位分隔符)
* 例如: 100, -0.99, 3, 234.32, -1, 900, 235.09, 12,345,678.90
*/
RegExpCurrency
/**
* 邮箱
* 例如: 90203918@qq.com, nbilly@126.com, 汉字@qq.com
*/
RegExpEmail
/**
* ip-v4[:端口]
* 例如: 172.16.0.0, 172.16.0.0:8080, 127.0.0.0, 127.0.0.0:998
*/
RegExpIPv4
/**
* ip-v6[:端口]
* 例如: 2031:0000:130f:0000:0000:09c0:876a:130b, [2031:0000:130f:0000:0000:09c0:876a:130b]:8080
*/
RegExpIPv6
/**
* 英文字符串首字母大写
* @param {String} str 英文字符串
* @return str
*/
Capitalize
/**
* 去除空格
* @param {String} string 字符串
* @param {String} pos 可选(both:两端, left:左端, right:右端, all:全部)
* @return str
*/
Trim
/**
* json对象转url参数: {aaa: 1} => a=1
* @param {*} obj 转化对象
* @param {*} encode 是否需要encode
* @return str
*/
Query2String
/**
* url参数转json对象: a=1 => {aaa: 1}
* @param {*} str 转化字符串
* @param {*} decode 是否需要decode
* @return obj
*/
String2Query
/**
* 以json的格式获取当前url上的参:
* http://www.taobao.com?a=1 => {a: 1}
* @return obj
*/
GetLocationQuery
/**
* 本算法来源于简书开源代码,详见:https://www.jianshu.com/p/fdbf293d0a85
* 全局唯一标识符(uuid,Globally Unique Identifier),也称作 uuid(Universally Unique IDentifier)
* 一般用于多个组件之间,给它一个唯一的标识符,或者v-for循环的时候,如果使用数组的index可能会导致更新列表出现问题
* 最可能的情况是左滑删除item或者对某条信息流"不喜欢"并去掉它的时候,会导致组件内的数据可能出现错乱
* v-for的时候,推荐使用后端返回的id而不是循环的index
* @param {Number} len uuid的长度
* @param {Boolean} firstU 将返回的首字母置为"u"
* @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
*/
Guid
/**
* 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
* @param {Function} func 要执行的回调函数
* @param {Number} wait 延时的时间
* @param {Boolean} immediate 是否立即执行
* @return null
*/
Debounce
/**
* 节流原理:在一定时间内,只能触发一次
* @param {Function} func 要执行的回调函数
* @param {Number} wait 延时的时间
* @param {Boolean} immediate 是否立即执行
* @return null
*/
Throttle
/**
* 递归 -> children 数组小于1 设置为 undefined
* @param {Array} data 递归数组
* @param {String} children 递归字段键
* @returns data
*/
SetTreeChildrenBlankToUndefined
/**
* 递归修改键
* @param {Array} data 递归数组
* @param {Array} changeKey 递归修改名 [{ from: val, to: val }, { from: val, to: val }]
* @param {Array} children 递归数组名
* @returns data
*/
ChangeTreeDataName
/**
* 递归排序
* @param {Array} data 递归数组
* @param {String} children 递归字段键
* @param {String} sort 排序字段键
* @returns data
*/
SortTreeData
/**
* 根据子级id递归寻找所有父级
* @param {array} list 寻找数组
* @param {id} id id
* @param {string} checkId 递归id字段名 默认id
* @param {string} checkChildren 递归children字段名 默认children
*/
FindTreeParentId
/**
* 根据数组遍历所有id
* @param {array} list 寻找数组
* @param {string} checkId 需要遍历的字段
* @param {string} checkChildren 需要遍历的children键
*/
FindTreeAllId
FAQs
The npm package c-tools-js receives a total of 24 weekly downloads. As such, c-tools-js popularity was classified as not popular.
We found that c-tools-js demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Fable shutdown shows how quickly model access can become a business continuity risk for AI-dependent engineering teams.

Security News
AI agents are pulling packages into environments no scanner is watching, creating exposure before security teams can see it.

Security News
GitHub Actions checkout now blocks risky pull_request_target checkouts by default to help prevent pwn request supply chain attacks.