@youngbeen/angle-util
v1.4.0
Published
The utils used in angle-FE team
Downloads
29
Readme
@youngbeen/angle-util
[TOC]
validator
引用
import { validator } from '@youngbeen/angle-util'
是否为空白无效字符串(剔除无效的空格之后) isBlankStr
是否为数字 isNumber
是否包含数字 hasNumber
是否为小数 isFloatNum
是否为小写英文字母 isLowercase
是否包含小写英文字母 hasLowercase
是否为大写英文字母 isUppercase
是否包含大写英文字母 hasUppercase
是否为英文或者数字 isNumbersOrLetters
是否为中文字符 isCnCharacter
是否包含中文字符 hasCnCharacter
是否为特殊字符 isSpecialCharacter
是否包含特殊字符 hasSpecialCharacter
是否长度处于 isLengthBetween
是否是名称(只能是中英文) isName
是否是昵称名称(只能是中英文或者数字) isNickName
是否是公司名称(只能是中英文和括号以及部分特殊符号) isCompany
是否是金额(最多2位小数) isAmount
是否是重量(最多3位小数) isWeight
是否是手机号码 isMobileNo
是否是固定电话(区号-号码 格式) isTelephoneNo
是否是传真(仅限数字和-) isFax
是否是微信号(2-20的长度,只能包含英文字母、数字、减号、下划线) isWechatNo
是否是网址 isUrl
是否是银行卡号(限定16-19位) isCardNo
是否是身份证号 isIdCardNo
是否是email地址 isEmailAddress
是否是登录账户(只能包含字母/数字或下划线,且以字母开头) isLoginName
validator.isBlankStr('') // true
validator.isBlankStr('a') // false
validator.isNumber('ab') // false
validator.isNumber('123') // true
validator.hasNumber('123abc') // true
validator.isFloatNum('123.2') // true
validator.isLowercase('abc') // true
validator.hasLowercase('abcDEF') // true
validator.isUppercase('ABC') // true
validator.hasUppercase('abcDEF') // true
validator.isNumbersOrLetters('ABC12') // true
validator.isCnCharacter('ABC') // false
validator.hasCnCharacter('abcDEF我') // true
validator.isSpecialCharacter('ABC') // false
validator.hasSpecialCharacter('abcDEF我') // false
validator.isLengthBetween('ABC12', 2, 5) // true
validator.isName('张三') // true
validator.isNickName('张三12') // true
validator.isCompany('银联商务') // true
validator.isAmount('12.23') // true
validator.isWeight('12.233') // true
validator.isMobileNo('12233334444') // true
validator.isTelephoneNo('027-88483843') // true
validator.isFax('027-88483843') // true
validator.isWechatNo('Youngbeen') // true
validator.isUrl('https://www.abc.com') // true
validator.isCardNo('6273772873772837') // true
validator.isIdCardNo('420222190001019992') // true
validator.isEmailAddress('[email protected]') // true
validator.isLoginName('abcawef') // true
是否是指定长度的数字 isNumberAtLength
validator.isNumberAtLength(string, length)
- string参数必须,代表需要校验的字符串
- length参数必须,代表需要校验的位数
validator.isNumberAtLength('123', 3) // true
anonymizer
引用
import { anonymizer } from '@youngbeen/angle-util'
隐私化手机号 fixMobileNo
隐私化电话号码 fixTelNo
隐私化银行卡号 fixCardNo
隐私化身份证号 fixCertNo
隐私化姓名 fixName
anonymizer.fixMobileNo('12311112222') // '123****2222'
anonymizer.fixTelNo('02711112222') // '027****2222'
anonymizer.fixCardNo('6222111122223333') // '622*********3333'
anonymizer.fixCertNo('420000111122223333') // '420000111****23333'
anonymizer.fixName('张三') // '张*'
anonymizer.fixName('张三丰') // '张*丰'
anonymizer.fixName('西门吹雪') // '西**雪'
anonymizer.fixName('张三', true) // '*三'
anonymizer.fixName('张三丰', true) // '*三丰'
deviceUtil
引用
import { deviceUtil } from '@youngbeen/angle-util'
判断是否是微信 isWechat
deviceUtil.isWechat() // false
判断是否是IOS isIOS
deviceUtil.isIOS() // true
判断是否是安卓 isAndroid
deviceUtil.isAndroid() // false
dateUtil
引用
import { dateUtil } from '@youngbeen/angle-util'
转化秒数为可阅读时间 getReadableTimeBySeconds
getReadableTimeBySeconds(time, {
[seconds: 'yes'|'no'|'dynamic',]
[secondsDynamicLimit: 60]
})
- time参数必须,代表待转化的秒数,限定整型
- seconds参数可选,代表秒模式,默认'yes'一直显示秒,'no'不显示秒, 'dynamic'动态显示(时间低于设定值时,显示秒,其他时候不显示秒)
- secondsDynamicLimit参数可选,代表秒动态显示设定值,默认60秒,即默认低于一分钟时则显示秒,其他时候不显示秒(该参数匹配seconds为'dynamic'时生效)
let detail = dateUtil.getReadableTimeBySeconds(23881)
// { days: 0, hours: 6, minutes: 38, seconds: 1, timeString: "6小时38分钟1秒" }
detail = dateUtil.getReadableTimeBySeconds(23881, { seconds: 'no' }))
// { days: 0, hours: 6, minutes: 38, seconds: 1, timeString: "6小时38分钟" }
格式化日期时间 formatDateTime
formatDateTime(format, [time])
- format参数必选,指定要格式化为的格式(其中YYYY指代全年份,YY指代缩略年份,MM指代月份,DD指代日,HH指代小时,mm指代分钟,ss指代秒)
- time参数可选,代表待格式化的时间(可接受能转化为js date类型的时间,字符串等),默认使用当前时间
// 假如当前时间是2019-03-15 03:48:50
dateUtil.formatDateTime('YYYYMM') // '201903'
let time = 1452592930000 // 2016-01-12 18:02:10
dateUtil.formatDateTime('MM/DD/YYYY HH:mm', time) // '01/12/2016 18:02'
dateUtil.formatDateTime('YYYY年MM月DD日HH时mm分ss秒', time) // '2016年01月12日18时02分10秒'
获取格式化日期时间 getDateTime
getDateTime(time, [type], [seperator])
- time参数必选,代表待格式化的时间(可接受能转化为js date类型的时间,字符串等)
- type参数可选,代表格式化的类型,'short'与's'指代短类型(e.g. 2016-1-12 18:02:10),'long'与'l'指代长类型(e.g. 2016-01-12 18:02:10)。默认是长类型
- seperator参数可选,代表分隔日期的分隔字符,默认是'-',用 - 分隔
dateUtil.getDateTime() // ''
let time = 1452592930000
console.log(dateUtil.getDateTime(time)) // '2016-01-12 18:02:10'
console.log(dateUtil.getDateTime(time, 'short', '.')) // '2016.1.12 18:02:10'
获取格式化日期 getDate
getDate(time, [type], [seperator])
- time参数必选,代表待格式化的时间(可接受能转化为js date类型的时间,字符串等)
- type参数可选,代表格式化的类型,'short'与's'指代短类型(e.g. 2016-1-12),'long'与'l'指代长类型(e.g. 2016-01-12)。默认是长类型
- seperator参数可选,代表分隔日期的分隔字符,默认是'-',用 - 分隔
console.log(dateUtil.getDate()) // ''
let time = 1452592930000
console.log(dateUtil.getDate(time)) // '2016-01-12'
console.log(dateUtil.getDate(time, 'short', '.')) // '2016.1.12'
获取格式化时间 getTime
getTime(time, [type])
- time参数必选,代表待格式化的时间(可接受能转化为js date类型的时间,字符串等)
- type参数可选,代表格式化的类型,'short'与's'指代短类型(e.g. 18:02),'long'与'l'指代长类型(e.g. 18:02:10)。默认是长类型
console.log(dateUtil.getTime()) // ''
let time = 1452592930000
console.log(dateUtil.getTime(time)) // '18:02:10'
console.log(dateUtil.getTime(time, 'short')) // '18:02'
numberUtil
引用
import { numberUtil } from '@youngbeen/angle-util'
保留n位小数四舍五入 round
round(num, [n])
- num参数必须,代表需要处理的数字
- n参数可选,代表需要保留的小数位,默认为0保留到整数
numberUtil.round(1.23) // 1
numberUtil.round(0.1) // 0
numberUtil.round(-0.1) // 0
numberUtil.round(1.23456, 2) // 1.23
numberUtil.round(1.23456, 3) // 1.235
numberUtil.round(1.2032, 2) // 1.2
numberUtil.round(0.0032, 2) // 0
生成随机数 random
random([max], [min])
- max参数可选,代表生成的随机数上限值,包含该值,默认为9
- min参数可选,代表生成的随机数下限值,包含该值,默认为0
numberUtil.random() // 默认生成0~9的随机数(包含0和9)
numberUtil.random(3) // 生成0~3的随机数(包含0和3)
numberUtil.random(3, 1) // 生成1~3的随机数(包含1和3)
numberUtil.random(3, 6) // 传入了错误的下限值,将生成3~3的随机数(即永远返回3)
批量生成随机数 multiRandom
multiRandom([count], [max], [min], [isDuplicate])
- count参数可选,代表生成的随机数个数,默认2,生成2个随机数
- max参数可选,代表生成的随机数上限值,包含该值
- min参数可选,代表生成的随机数下限值,包含该值
- isDuplicate参数可选,代表是否生成的随机数可以重复,默认false不可以重复
返回的结果始终是数组
如果生成的随机数不允许重复,那么一定保证生成区间足够生成需求的随机数个数!
// 默认生成2个随机数,生成区间0~9(包含0和9),随机数不重复,例如返回[3, 9]
numberUtil.multiRandom()
// 生成5个随机数,生成区间0~9(包含0和9),随机数不重复,例如返回[3, 9, 0, 2, 8]
numberUtil.multiRandom(5)
// 生成3个随机数,生成区间1~6(包含1和6),随机数不重复,例如返回[3, 1, 5]
numberUtil.multiRandom(3, 6, 1)
// 生成8个随机数,生成区间1~6(包含1和6),随机数可重复,例如返回[3, 1, 5, 2, 3, 6, 2, 5]
numberUtil.multiRandom(8, 6, 1, true)
arrayUtil
引用
import { arrayUtil } from '@youngbeen/angle-util'
深拷贝 deepCopy
deepCopy(original: any): any
- original参数必须,代表需要深拷贝的内容
let arr = [1, 2, 3]
let newArr = arrayUtil.deepCopy(arr)
textUtil
引用
import { textUtil } from '@youngbeen/angle-util'
修正电话号码 fixPhoneStr
textUtil.fixPhoneStr('abc123de*4') // '1234'
moneyUtil
引用
import { moneyUtil } from '@youngbeen/angle-util'
分转元 fenToYuan
// 可接收数字或者字符串
moneyUtil.fenToYuan(100) // '1.00'
moneyUtil.fenToYuan(100.12) // '1.00'
moneyUtil.fenToYuan(125) // '1.25'
moneyUtil.fenToYuan('125') // '1.25'
元转分 yuanToFen
// 可接收数字或者字符串
moneyUtil.yuanToFen(100) // '10000'
moneyUtil.yuanToFen(1.12) // '112'
moneyUtil.yuanToFen(1.123) // '112'
moneyUtil.yuanToFen('1.234') // '123'
元转万 yuanToWan
// 可接收数字或者字符串,可指定保留多少位小数,默认保留2位
moneyUtil.yuanToWan(100) // '0.01'
moneyUtil.yuanToWan(1.12) // '0.00'
moneyUtil.yuanToWan(12345.4) // '1.23'
moneyUtil.yuanToWan(12345.4, 0) // '1'
moneyUtil.yuanToWan(12345.4, 1) // '1.2'
moneyUtil.yuanToWan('12345.4', 3) // '1.235'
金额格式化 moneyStyle
// 可接收数字或者字符串
moneyUtil.moneyStyle(12345) // '12,345'
moneyUtil.moneyStyle(12345.4) // '12,345.4'
moneyUtil.moneyStyle(12345678) // '123,456,789'
moneyUtil.moneyStyle(1.2) // '1.2'
moneyUtil.moneyStyle(1.23) // '1.23'
moneyUtil.moneyStyle(100.12) // '100.12'