@youngbeen/angle-util
TypeScript icon, indicating that this package has built-in type declarations

1.4.0 • Public • Published

@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('abc@some.com') // 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'

Readme

Keywords

Package Sidebar

Install

npm i @youngbeen/angle-util

Weekly Downloads

11

Version

1.4.0

License

ISC

Unpacked Size

1.39 MB

Total Files

134

Last publish

Collaborators

  • youngbeen