como-ts-utils
v1.0.6
Published
基于typescript的基本工具库
Downloads
12
Readme
como-ts-utils
基于typescript的基本工具库
常用工具库[ComoTsUtils]
/**
* 全局统一返回数据结构
* @param data
* @param error
* @param msg
* @param code
*/
AppResult<T extends any>(msg:string,data:T,error:boolean = true,code:number = 0) => AppResultType<T>
/**
* 生成随机数
* @param minNum
* @param maxNum
*/
MtRand(minNum:number = 0,maxNum:number = 1) => number
/**
* 字符串实现*号隐藏 罗* 137*****35等等
* @param str
* @param startLen 前面多少位不用隐藏
* @param lastLen 后面多少位不用隐藏
*/
StrMiddenHidden(str:string,startLen:number = 0,lastLen:number = 0) => string
/**
* 获取时间
* @param timer true / false true 获取豪秒时间 false 获取秒时间
*/
Time(timer:boolean = false) => number
/**
* 时间格式转时间戳
* @param formatDate
*/
StrToTime(formatDate:string) => number
/**
* 格式化时间 像php Date的一样使用
* @param formatDate
* Y-m-d H:i:s 获取时间 2023-01-12 21:28:23
* Y-m-d H:i 获取时间 2023-01-12 21:28
* Y-m-d 获取时间 2023-01-12
* @param timer 不传默认是当前时间
*/
Date(formatDate:string,timer?:number) => string
/**
* 获取一个月多少天 如2022-01-10 15:10:00 如2022-01-10 默认当前时间
* @param fromatDate
*/
MonthDay(fromatDate?:string) => number
/**
* 获取一年有多少天 如2022-01-10 15:10:00 如2022-01-10 默认当前时间
* @param fromatDate
*/
YearDay(fromatDate?:string) => number
/**
* 获取一年的第一天时间格式 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
* @param fromateData
*/
YearFirstDay(fromateData?:string) => string | boolean
/**
* 获取一年的最后一天时间格式 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
* @param fromateData
*/
YearLastDay(fromateData?:string) => string | boolean
/**
* 获取某个日期是当年中的第几天 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
* @param fromatDate
*/
DateToYearDay(fromatDate?:string) => number | boolean
/**
* 获取某个日期在这一年的第几周 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
* @param fromatDate
*/
DateToYearWeek(fromatDate?:string) => number | boolean
/**
* 判断是否是润年 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
* @param fromatDate
*/
IsLeapYear(fromatDate?:string) => boolean
/**
* 获取字符串的md5值
* @param str
*/
MD5(str:string) => string
/**
* aes加密
* @param str
* @param secret
*/
AesEncode(str:string,secret:string = 'szjcomo') => string
/**
* ase解密
* @param str
* @param secret
*/
AesDecode(str:string,secret:string = 'szjcomo') => string
/**
* sha1加密
* @param str
*/
Sha1(str:string) => string
/**
* sha256加密
* @param str
*/
Sha256(str:string) => string
/**
* base64加密
* @param str
*/
Base64Encode(str:string) => string
/**
* base64解密
* @param str
*/
Base64Decode(str:string) => string
/**
* json加密
* @param data
*/
JsonEncode<T extends Object>(data:T) => string
/**
* json解密
* @param data
*/
JsonDecode<T extends any>(data:string) => T
/**
* 宽松的验证是否身份证号码
* @param data
*/
IsIdCardno(data:string) => boolean
/**
* 严格的验证是否身份证号码
* @param data
*/
IsIdentityNumber(data:string) => boolean
/**
* 身份证号码17位自动补全
* @param data
*/
RepairIdentity(data:string) => string
/**
* 根据身份证号码获取生肖
* @param idcard
*/
GetZodiac(idcard:string) => string
/**
* 根据身份证号码获取星座
* @param idcard
*/
GetStarsign(idcard:string) => string
/**
* 根据身份证号码获取年龄
* @param idcard
* @param newDay
* @param newMonth
* @param newYear
* @returns
*/
GetAge(idcard:string,newDay:number = 0,newMonth:number = 0,newYear:number = 0) => number
/**
* 根据身份证号码获取出生日期
* @param idcard
*/
GetBorn(idcard:string) => string
/**
* 根据身份证号码获取性别
* @param idcard
*/
GetGender(idcard:string) => string
/**
* 去除字符串首尾空
* @param str
* @param trimType type 1-所有空格 2-前后空格 3-前空格 4-后空格
*/
Trim(str:string,trimType:number = 2) => string
/**
* 获取字符串长度
* @param str
*/
StrLen(str:string) => number
/**
* 获取随机字符串
* @param len
* @param randType type default [字符串和数字] number[纯数字] letter[纯字母]
*/
StrRand(len:number = 4,randType:string = 'default') => string
/**
* 强制格式化为小数点后两位,不够补0 四舍五入
* @param money
*/
MoneyFormat2(money:number | string) => string
/**
* html 标签转义
* @param str
*/
HtmlEscape(str:string) => string
/**
* html 标签反转义
* @param str
*/
HtmlUnEscape(str:string) => string
/**
* 判断是否为空
* @param data
*/
Empty(data:any) => boolean
/**
* 判断是否为数字
* @param data
*/
IsNumber(data:any) => boolean
/**
* 判断是否全是字母
* @param data
*/
IsAlpha(data:any) => boolean
/**
* 判断是否全是中文
* @param data
*/
IsChinese(data:any) => boolean
/**
* 判断是否是数字和字母的组合
* @param data
*/
IsAlphaNumber(data:any) => boolean
/**
* 判断是否是一个手机号
* @param data
*/
IsPhone(data:any) => boolean
/**
* 判断是否是一个对象
* @param data
*/
IsObject(data:any) => boolean
/**
* 判断是否是一个电话号码
* @param data
*/
IsTel(data:any) => boolean
/**
* 判断是否是一个qq号
* @param data
*/
IsQQ(data:any) => boolean
/**
* 判断是否是email
* @param data
*/
IsEmail(data:any) => boolean
/**
* 判断是否是一个url
* @param data
*/
IsURL(data:any) => boolean
/**
* 判断是否是一个数组
* @param data
*/
IsArray(data:any) => boolean
/**
* 判断是否在数组里面
* @param data
* @param el
*/
InArray(data:any[],el:any) => boolean
/**
* 判断是否是一个函数
* @param data
*/
IsFunction(data:any)=>boolean
/**
* 取数组的平均值
* @param data
*/
ArrayAvg(data:number[]) => number
/**
* 数组求和
* @param data
*/
ArraySum(data:number[]) => number
/**
* 取数组最小值
* @param data
*/
ArrayMin(data:number[]) => number
/**
* 取数组最大值
* @param data
*/
ArrayMax(data:number[]) => number
/**
* 数组移动某个值
* @param data
* @param el
*/
ArrayRemove<T extends any>(data:T[],el:T) => T[]
/**
* 数组去重
* @param data
*/
ArrayUnique<T extends any>(data:T[]) => T[]
/**
* 数组排序
* @param arr
*/
ArraySort(arr:number[]) => number[]
/**
* 数组合并
* @param arr
* @param arr1
*/
ArrayMerge<T extends any>(arr:T[],arr1:T[]) => T[]
/**
* 数组去掉最后一个值
* @param arr
*/
ArrayPop<T extends any>(arr:T[]) => T[]
/**
* 从数组中随机取出一个值
* @param arr
*/
ArrayRand<T extends any>(arr:T[]) => T
/**
* 将一组数组转换成多维数组
* @param data
* @param pid
* @param pidField
* @param pkField
* @param childrenfield
*/
ArrayRecursion<T extends any>(data:T[],pid:number = 0,pidField:string = 'pid',pkField:string = 'id',childrenfield:string = 'children')=>T[]
/**
* 多维数组转一维数组
* @param data
* @param childrenfield
*/
ArrayRecursiveBack<T extends any>(data:T[],childrenfield:string = 'children') => T[]
/**
* 自定义加密函数
* @param str
* @param secret
*/
ComoEncode(str:string,secret:string = '0l23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ') => string
/**
* 自定义解密函数
* @param str
* @param secret
*/
ComoDecode(str:string,secret:string = '0l23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ') => string
数据结构验证工具库[ComoTsRuleUtil]
/**
* 字段名称
* @param fieldName
*/
Name(fieldName:string) => ComoTsRuleUtil
/**
* 是否必须存在
* @param errMsg
*/
Required(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值是否不能为空
* @param errMsg
*/
NotEmpty(errMsg?:string) => ComoTsRuleUtil
/**
* 是否去掉首尾空
*/
Trim() => ComoTsRuleUtil
/**
* 判断是否为json
* @param errMsg
*/
IsJson(errMsg?:string) => ComoTsRuleUtil
/**
* 设置字段默认值
* @param value
*/
DefaultValue(value:any) => ComoTsRuleUtil
/**
* 扩展验证器
* @param cb
*/
ExtendRule(cb:ComoRulesExtend) => ComoTsRuleUtil
/**
* 是否是一个日期格式 2023-01-01 或 2023/01/01
* @param errMsg
*/
IsDate(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值转为数字
* @param errMsg
*/
Number(errMsg?:string) => ComoTsRuleUtil
/**
* 是否邮箱格式
* @param errMsg
*/
IsEmail(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值的最大长度
* @param errMsg
*/
MaxLength(len:number,errMsg?:string) => ComoTsRuleUtil
/**
* 字段值最小长度
* @param len
* @param errMsg
*/
MinLength(len:number,errMsg?:string) => ComoTsRuleUtil
/**
* 字段最大值
* @param value
* @param errMsg
*/
MaxValue(value:number,errMsg?:string) => ComoTsRuleUtil
/**
* 字段最小值
* @param value
* @param errMsg
*/
MinValue(value:number,errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须全是字母
* @param errMsg
*/
IsLetters(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须全是中文
* @param errMsg
*/
IsChinese(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须是字母和数字的组合
* @param errMsg
*/
IsLettersNumber(errMsg?:string) => ComoTsRuleUtil
/**
* 必须是中文或字母
* @param errMsg
*/
IsChineseOrLetters(errMsg?:string) => ComoTsRuleUtil
/**
* 字母或数字或下划线组合
* @param errMsg
* @returns
*/
IsLettersOrNumber(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须是一个手机号的格式
* @param errMsg
*/
IsPhone(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须是一个对象
* @param errMsg
*/
IsObject(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须是一个数组
* @param errMsg
*/
IsArray(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须是一个qq号码
* @param errMsg
*/
IsQQ(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须是一个url
* @param errMsg
*/
IsURL(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须在这个数组里
* @param arr
* @param errMsg
*/
InArray(arr:any[],errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须是一个IP格式
* @param errMsg
*/
IsIp(errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须与另外一个字段值相等
* @param field
* @param errMsg
*/
Ref(field:string,errMsg?:string) => ComoTsRuleUtil
/**
* 字段值必须为身份证号码格式 非严格身份证验证模式
* @param errMsg
*/
IsIdCard(errMsg?:string) => ComoTsRuleUtil
/**
* 身份证号码严格模式验证
* @param errMsg
*/
IsIdentityNumber(errMsg?:string) => ComoTsRuleUtil
/**
* html转议
* @param errMsg
*/
HtmlEscape(errMsg?:string) => ComoTsRuleUtil
/**
* 获取验证规则对象
*/
Rules() => ComoRules
数据结构验证[ComoTsValidate]
/**
* 实现验证
* 请使用try catch 捕获错误 只有正确才有返回值
* 未通过验证的只会抛出异常Error
* @param rules
* @param data
*/
ComoTsValidate<T extends Object>(rules:ComoValidateRules,data:ComoObjectType) => Promise<T | void>