# 思智捷科技常用工具类 ### 验证类函数 ```js /*[empty 验证是否为空]*/ empty:function(data) /*[isnum 是否为数字]*/ isNumber:function(val) /**[isalpha 是否字母]*/ isAlpha:function(val) /*[ischinese 只能是汉字]*/ isChinese:function(val) /* [length 长度限制]*/ length:function(val,start,end) /*[isalphanum 只能是英文字母或数字]*/ isAlphaNumber:function(val) /*[isPhone 是否合法的手机号]*/ isPhone:function(val) /*[isObject 是否对象]*/ isObject:function(obj) /*[isTel 是否固定电话]*/ isTel:function(str) /*[isQQ 是否qq号码]*/ isQQ:function(str) /*[isEmail 是否邮箱]*/ isEmail:function(str) /*[isURL 是否网址]*/ isURL:function(str) /*[isArray 是否数组]*/ isArray:function(arr) /*[inArray 判断是否在数组中]*/ inArray:function(arr,val) /*[isFunction 判断是否为函数]*/ isFunction:function(mixed) ``` ### 时间处理函数 ```js time:function(timer = false) return 时间戳 number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | timer | 否 | boolean | true 毫秒 false 秒 默认 秒 | ```js strToTime:function(formatDate) return 时间戳 number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | formatDate | 是 | string | 日期格式化时间戳 示例 '2020-08-09' | ```js monthDay:function(formatDate) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | formatDate | 是 | string | 某月有多少天 示例 '2020-08-09' | ```js yearDay:function(formatDate) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | formatDate | 是 | string | 某年有多少天 示例 '2020-08-09' | ```js yearFirstDay:function(formatDate) return 日期(2020-01-01 00:00:00) ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | formatDate | 是 | string | 某年第一天 示例 '2020-08-09' | ```js yearLastDay:function(formatDate) return 日期(2020-12-31 00:00:00) ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | formatDate | 是 | string | 某年最后一天 示例 '2020-08-09' | ```js dateToYearDay:function(formatDate) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | formatDate | 是 | string | 获取某个日期是当年中的第几天 示例 '2020-08-09' | ```js dateToYearWeek:function(formatDate) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | formatDate | 是 | string | 获取某个日期在这一年的第几周 示例 '2020-08-09' | ```js isLeapYear:function(formatDate) return boolean ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | formatDate | 是 | string | 判断是否是润年 示例 '2020-08-09' | ```js date:function(format,time) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | format | 是 | string | 同php date一样用户 示例 'Y-m-d H\:\i\:\s' | | time | 否 | int | 同php date一样用户 示例 秒级时间戳 | ### 身份证处理函数 ```js isIdcardno:function(val) return boolean ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | val | 是 | string | 判断是否身份证号码,不是严格检查 示例 '5102221155555' | ```js getGender:function(idcardno) return string (男/女) ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | idcardno | 是 | string | 根据身份证号码获取性别 示例 '5102221155555' | ```js getBorn:function(idcardno) return string 日期(2020-08-09) ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | idcardno | 是 | string | 身份证号码推断出生年月 示例 '5102221155555' | ```js getAge:function(idcardno,newDay,newMonth,newYear) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | idcardno | 是 | string | 身份证号码推断年龄 示例 '5102221155555' 默认到当前年月日 | | newDay | 否 | number | 是否需要指定到哪一天 示例 30 | | newMonth | 否 | number | 是否需要指定到哪一月 示例 8 | | newYear | 否 | number | 是否需要指定到哪一年 示例 2020 | ```js getStarsign:function(idcardno) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | idcardno | 是 | string | 根据身份证号码获取所属的星座 示例 '5102221155555' | ```js getZodiac:function(idcardno) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | idcardno | 是 | string | 根据身份证号码获取所属的生肖 示例 '5102221155555' | ```js repairIdentity:function(idcardno) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | idcardno | 是 | string | 17号身份证号码自动补全 示例 '5102221155555' | ```js isIdentityNumber:function(idcardno) return boolean ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | idcardno | 是 | string | 18位身份证号码严格检测 示例 '5102221155555' | ### 数组处理函数 ```js arrayAvg:function (arr) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 数组中求平均值 示例 [1,2,3,4,5] | ```js arraySum:function (arr) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 数组求和 示例 [1,2,3,4,5] | ```js arrayMin:function (arr) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 数组求最小值 示例 [1,2,3,4,5] | ```js arrayMax:function (arr) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 数组求最大值 示例 [1,2,3,4,5] | ```js arrayRemove:function (arr, ele) return Array ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 数组中移除某个值 示例 [1,2,3,4,5] | | ele | 是 | 数组元素 | 数组元素 示例 1 | ```js arrayUnique:function(arr) return Array ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 数组去重 示例 [1,2,3,4,5] | ```js arraySort:function (arr, type) return Array ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 数组排序 示例 [1,2,3,4,5] | | type | 否 | number | [1:从小到大 2:从大到小 3:随机] 示例 1 | ```js arrayMerge:function(arr,arr1 = []) return Array ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 数组合并 示例 [1,2,3,4,5] | | arr1 | 是 | Array | [] 示例 [] | ```js arrayPop:function(arr) return Array ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 删除数组最后一个元素 示例 [1,2,3,4,5] | ```js arrayRand:function(arr) return 数组元素 ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 数组中随机取出一个值 示例 [1,2,3,4,5] | ```js arrayRecursion:function(data,pid = 0,field = 'pid',pk = 'id',flag = 'child') return Array ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 一维数组转换成递归树 示例 [主要用于分类格式数据] | | pid | 否 | number | 默认从0 最顶级开始找 | | field | 否 | string | 默认pid | | pk | 否 | string | 默认id | | flag | 否 | string | 默认child | ```js arrayRecursiveBack:function(data = [],flag = 'child') return Array ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | arr | 是 | Array | 递归树后的数组转一维数组 示例 [主要用于分类格式数据] | | flag | 否 | string | 同上面的flag一样 | ### 密码处理函数 ```js md5:function(str) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | md5加密 示例 szjcomo | ```js aes_encode:function(str,secret = 'szjcomo') return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | aes加密 示例 szjcomo | | secret | 否 | string | 密钥 示例 szjcomo | ```js aes_decode:function(str,secret = 'szjcomo') return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | aes解密 示例 szjcomo | | secret | 否 | string | 密钥 示例 szjcomo | ```js sha1:function(str) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | sha1加密 示例 szjcomo | ```js sha256:function(str) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | sha256加密 示例 szjcomo | ```js sha512:function(str) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | sha512加密 示例 szjcomo | ```js base64_encode:function(str) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | base64加密 示例 szjcomo | ```js base64_decode:function(str) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | base64解密 示例 szjcomo | ### 其它常用函数 ```js trim:function(str, type = 2) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | 字符串去空函数 示例 szjcomo | | type | 否 | number | 1-所有空格 2-前后空格 3-前空格 4-后空格 默认2 | ```js strlen:function(str) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | 获取字符串长度 示例 一个中文三个字符 按utf8编码计算 | ```js mt_rand:function(min = 0.1,max = 1.0) return number ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | min | 是 | number | 获取随机数 示例 10000 | | max | 是 | number | 获取随机数 示例 99999 | ```js str_rand:function(len = 4,type = 'default') return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | len | 是 | number | 获取随机字符串 示例 10000 | | type | 否 | string | [default 字符串+数字 number 数字 letter 小写字母] 默认 default | ```js money_format:function(x) return string ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | x | 是 | number | 强制格式化为小数点后两位,不够补0 四舍五入 示例 2 | ```js uaParse:function(str) return Object ``` | 参数名 | 是否必填 | 类型 | 备注说明 | | ------------ | ------------ | ------------ | ------------ | | str | 是 | string | 解析浏览器请求头 | __2021年1月1日__ * 增加自定义加解密方法 `como_encode()`,`como_decode()` __2021年3月12日__ * 修复已知的Bug __2022年7月12日__ * 修复身份证号码严格限制的空格处理