js-util-zhangxw v1.0.0
ts-util
一.介绍
用 typescript 写的常用工具类
通过作者平时开发积累和一些现网上零散整理,把一些常用的工具类封装起来。
二.如何使用
yarn add js-util-zhangxw
import * as util from 'js-util-zhangxw';
三.API
1.string
1.1 strCheck 验证
util.strCheck(str:string, type: StrEnum) => boolean
enum StrEnum {
PHONE = 'phone', //校验手机号
TEL = 'tel', //检验电话
CARD = 'card', //检验身份证
PWD = 'pwd',
POSTAL = 'postal',
QQ = 'qq',
EMAIL = 'email',
MONEY = 'money',
URL = 'URL',
IP = 'IP',
DATE = 'date',
NUMBER ='number',
ENGLISH = 'english',
CHINESE = 'chinese',
LOWER= 'lower',
UPPER = 'upper',
HTML = 'HTML'
}
// example
util.strCheck('18268100000', 'phone') => true
1.2 strTransformName 两个字名字中间加空格
util.strTransformName(name: string) => cname
// example
util.strTransformName('王五') => '王 五'
1.3 hideMaxString 超出隐藏
util.hideMaxString = (str:String, len: number): String
// example
util.hideMaxString = ('123456789', 4) = > '1234...'
1.4 strlen 计算字符串长度
strlen = (str: string): number
// example
util.strlen = ('String 类型长度') = > 7.5
1.5 formatMoney 格式化金额
util.formatMoney = (str: any): string
// example
util.formatMoney = ('123456789'): '123,456,789'
1.6 maskPhone 对手机号进行去敏处理,用 *替换
util.maskPhone = (phone: string, start: number = 3, len: number = 4): string
// example
util.maskPhone = ('13641601234'): '136****1234'
1.7 maskEMail() 对电子邮箱进行去敏处理,用*替换
util.maskEMail = (email: string):string
// example
util.maskEMail = ('123456@jz-ins.cn'): '123@jz-ins.cn'
1.8 maskName() 对姓名进行去敏处理,用*替换
util.maskName = (name: string):string
// example
util.maskName = ('张三'): '张*'
1.9 mask() 对字符串进行去敏处理,用*替换
util.mask = (text: string, start: number, end: number, len?: number): string
// example
util.mask = ('123456', 2, 3) : '12****456'
1.10 maskIDCard() 对身份证进行去敏处理,用*替换
util.maskIDCard = (idcard: string, start: number = 6, len: number = 8): string
// example
util.maskIDCard = ('110410199001011234', 6, 10): '110410**********34'
1.11 idcardIsValid() 检查身份证是否合法
util.idcardIsValid = (idcard: string): boolean
// example
util.idcardIsValid = ('110410199001011234'): false
1.12 contains 判断字符串是否包含某个字符串
util.contains = (input: string, searchSeq: string): boolean
// example
util.contains = ('abcdefg', 'abc'): true
1.13 equalsIgnoreCase 忽略大小写判断两个字符串是否相等
util.equalsIgnoreCase = ('equalsIgnoreCasE', 'equalsIgnoreCase'): boolean
// example
util.equalsIgnoreCase = ('equalsIgnoreCasE', 'equalsIgnoreCase'): true
1.14 equals 判断字符串是否包含某个字符串
util.equals = (input1: string | number, input2: string | number): boolean
// example
util.equals = ('equalsIgnoreCasE', 'equalsIgnoreCase'): false
1.15 containsWhitespace 判断字符串是否含有空格
util.containsWhitespace = (input: string): boolean
// example
util.containsWhitespace = ('我是 测试的字符串 '): true
1.16 deleteWhitespace 去除字符串中的空格
util.deleteWhitespace = (input: string): string
// example
util.containsWhitespace = ('我是 测试的字符串 '): '我是测试的字符串'
1.17 isAllUpperCase 判断字符串是否为大写字母
util.isAllUpperCase = (input: string): boolean
// example
util.isAllUpperCase = ('isAllLowerCase'): false
1.18 isAllLowerCase 判断字符串是否为小写字母
util.isAllLowerCase = (input: string): boolean
// example
util.isAllLowerCase = ('abcdefg'): true
1.19 isWhitespace 判断字符串是否为空格
util.isWhitespace = (input: string): boolean
// example
util.isWhitespace = ('22.22'): false
1.20 isNumericSpace 判断字符串是否为数字、空格
util.isNumericSpace = (input: string): boolean
// example
util.isNumericSpace = ('2222aa'): false
1.20 isNegativeInteger 判断字符串是否为负整数
util.isNegativeInteger = (input: string): boolean
// example
util.isNegativeInteger = ('22.22'): false
1.21 isPositiveInteger 判断字符串是否为正整数
util.isPositiveInteger = (input: string): boolean
// example
util.isPositiveInteger = ('22.22'): true
1.22 isStringInteger 判断字符串是否为整数
util.isStringInteger = (input: string): boolean
// example
util.isStringInteger = ('22.22'): false
1.23 isDecimal 判断字符串是否为小数
util.isDecimal = (input: string): boolean
// example
util.isDecimal = ('22.22'): true
1.24 isNegativeDecimal 判断字符串是否为负小数
util.isNegativeDecimal = (input: string): boolean
// example
util.isNegativeDecimal = ('22.22'): false
1.25 isPositiveDecimal 判断字符串是否为正小数
util.isPositiveDecimal = (input: string): boolean
// example
util.isPositiveDecimal = ('22.22'): true
2.object
2.1 objIsNull 对象判空
util.objIsNull(obj: object) => boolean
// example
const obj = {}
util.objIsNull(obj) => false // 传参不需要判空,代码里已判空
2.2 isObject 是否是对象
util.isObject(obj: object) => boolean
// example
const obj = {}
util.objIsNull(obj) => true
3.array
3.1 arrIsNull 数组判空
util.arrIsNull(arr: any[]) => boolean
// example
const arr = []
util.arrIsNull(arr) => false // 传参不需要判空,代码里已判空
3.2 arrAttributeSort 数组排序 从小到大或者从 大到小
util.arrAttributeSort(arr: any[], attribute?: any, num?: boolean) => any[]
// desc:
数组排序
(1)arr : 传入的数组
(2)attribute: 是否根据数组对象的某个属性排序
(3)num : 从小到大 或者 从大到小
// example
let dataSort = [
{name: "教授", total: 48},
{ name: "副教授", total: 26 },
{ name: "高级工程师", total: 13 },
{ name: "研究员", total: 12 },
{ name: "多福多寿", total: 10 },
{ name: "打发第三方", total: 16 },
]
util.arrAttributeSort(dataSort, 'total', true) => [
{ name: '教授', total: 48 },
{ name: '副教授', total: 26 },
{ name: '高级工程师', total: 13 },
{ name: '研究员', total: 12 },
{ name: '多福多寿', total: 10 },
{ name: '打发第三方', total: 16 }
]
3.3 isArray 判断是否为数组
util.isArray(arr: any[]) => boolean
// example
const arr = []
util.isArray(arr) => true
4.store
4.1 storeCookieSet 设置某个 cookie
util.storeCookieSet(str: string, value: string) => void
// example
util.storeCookieSet('token', 'token')
4.2 storeCookieGet 获得 coookie 中某个值
util.storeCookieGet(str: string) => string
// example
document.cookie="token=token";
util.storeCookieGet('token') => 'token'
4.3 storeCookieDelete 删除单条 cookie
util.storeCookieDelete(str: string) => void
4.4 storeCookieRemove 删除所有 cookie
util.storeCookieRemove() =
4.5 storeLocalStorageSet 设置 localStorage 已经 JSON.stringify
util.storeLocalStorageSet(name: string, value: any) => void
4.6 storeLocalStorageGet 获取 localStorage 已经 JSON.parse
util.storeLocalStorageGet(str: string) => any
5.url
5.1 uriGetParam 获取 urL 上的某个参数
util.uriGetParam(str: string) => string
// example
www.xxx.com?a=1&b=2
util.uriGetParam('a') => '1'
6.浏览器
6.1 browserGetType 获取浏览器类型
util.browserGetType() => string
// example
util.browserGetType() => 'Opera' || 'IE' || 'Edge' || 'Firefox' || 'Safari' || 'Chrome' || 'OverIE10'
6.2 browserIsNew 是否是现代浏览器(IE11 及以上)
util.browserIsNew() => boolean
// example
// 如果是 IE11 及以上,返回 true
util.browserIsNew() => true
6.3 backScrollTop 让页面回到具体位置
util.backScrollTop()
// example
util.backScrollTop()
7.func
7.1 判断是否为函数
util.isFunc(fn: object) => boolean
// example
function aa () {}
util.isFunc(aa) => true
8. 图片
8.1 给图片路径加大小
util.changeImgurl = (url: string, width: number, height: number, hostUrl = false): string
9. 判断类型
/\*\*
- 判断是否为 undefined
\*/
const isUndefined: (obj: any) => boolean = \_createTypeOf('Undefined');
/\*\*
- 判断是否为 null
\*/
const isNull: (obj: any) => boolean = \_createTypeOf('Null');
/\*\*
- 判断是否为 Array 类型
\*/
const isArray: (obj: any) => boolean = Array.isArray || \_createTypeOf('Array');
/\*\*
- 判断是否为 Function 类型
\*/
const isFunction: (obj: any) => boolean = \_createTypeOf('Function');
/\*\*
- 判断是否为 Boolean 类型
\*/
const isBoolean: (obj: any) => boolean = \_createTypeOf('Boolean');
/\*\*
- 判断是否为 String 类型
\*/
const isString: (obj: any) => boolean = \_createTypeOf('String');
/\*\*
- 判断是否为 Number 类型
\*/
const isNumber: (obj: any) => boolean = \_createTypeOf('Number');
/\*\*
- 判断是否为 RegExp 类型
\*/
const isRegExp: (obj: any) => boolean = \_createTypeOf('RegExp');
/\*\*
- 判断是否为 Object 类型
\*/
const isObject: (obj: any) => boolean = \_createTypeOf('Object');
/\*\*
- 判断是否为 Date 类型
\*/
const isDate: (obj: any) => boolean = \_createTypeOf('Date');
/\*\*
- 判断是否为 Error 类型
\*/
const isError: (obj: any) => boolean = \_createTypeOf('Error');
/\*\*
- 获取对象的类型
- @param obj
\*/
getType(obj: any): string
/\*\*
- 判断是否为空,包括空对象,空数组,空字符串,null,undefined
- @param obj 任意对象
\*/
isEmpty(obj: any): boolean
10. 文件
10.1 openForm 导出文件
util.openForm(url, params, method)
/\*
\*@param {String} url 提交的地址 (后端的接口地址)
- @param {Object} params 提交的数据
- @param {String} method 提交的方式
\*/
// example
const url = `http://192.168.22.8:3002/manage/data/export/1`
util.openForm = (url, {}, "POST")
// 最后得到一个 excel
11.number
11.1 判断是否为整数
util.isInteger = (num: number): boolean
// example
util.isInteger(123): true
11.2 判断是否为小数
util.isFloat(num: number): boolean
// example
util.isFloat(1.555): true
11.3 检查数字是否在指定区间内
- @param num 要检测的数字
- @param start 区间的开始,默认值为 0
- @param end 区间的结束(区间不包含此边界值)
util.inRange = (num: number, start: number, end: number): boolean
// example
util.inRange(4, 8): true
11.4 生成随机数,支持随机整数和随机小数
- @param {Number} lower 下边界,默认 0
- @param {Number} upper 上边界,默认 1
- @param {Boolean} floating 随机小数的位数,默认为 0,即随机整数
util.random= (lower: number, upper: number, floating: number = 0): number
// example
util.random(1.2, 5.2, 1): 1.5
11.5 生成随机数,支持随机整数和随机小数
util.isaFinite = (num: number): boolean
// example
util.isaFinite(123): true
11.6 判断是否是 NaN
util.isaNaN = (num: number): boolean
// example
util.isaNaN(123): flase
11.7 转为数字
- @param value 要转成数字的值
util.toNumber = (value: any): number
// example
util.toNumber = ('123'): 123
11.8 转为有理数
util.toFinite = (value: any): number
// example
util.toFinite(3.2) : 3.2
util.toFinite(Number.MIN_VALUE) : 5e-324
11.9 除法 保留几位小数
util.rateNumber = (value: number, divisor: number, num: number): string
// example
util.rateNumber(788, 10, 2) : 78.80
11. 其他
11.1 动态加载 js
util.dynamicScript = (url:string, name?:string)
// example
util.dynamicScript = ('/console/static/UE/ueditor.config.js')
11.2 动态加载 css
util.dynamicScript = (url:string)
// example
util.dynamicScript = ('/console/static/UE/ueditor.css')
四. 测试
npm run test 启动 src/tests 里面是测试的实例
2 years ago