@yeung2017/utils
v1.1.4
Published
平时用到的常用工具函数,从1.0.9版本使用ts开发 支持 es 方式引入
Downloads
13
Readme
常用工具函数
平时用到的常用工具函数,从1.0.9版本使用ts开发 支持 es 方式引入
// es6的方式
import { convertTothousandths } from "@yeung2017/utils";
API
Table of Contents
- IAddQueryToUrlOptions
- addQueryToUrl
- IConvertTothousandthsOptions
- convertTothousandths
- IDateFormatOptions
- dateFormat
- formatNumberDivisor
- formatNumberPercent
- formatQuery
- IGetTimeDurationOptions
- IGetTimeDurationResult
- getTimeDuration
- IIsCommonAppBroswerOptions
- isCommonAppBroswer
- padEndZero
- ISplitPriceResult
- splitPrice
- IToFenOptions
- toFen
- IToYuanOptions
- toYuan
IAddQueryToUrlOptions
addQueryToUrl方法的选项
url
url
Type: string
query
查询字符串,也可以是个对象
mergeQuery
是否覆盖更新query, 比如addQueryToUrl({url:'xxx?a=1',query:{a:2},mergeQuery:true})将会是xxx?a=2,而不是xxx?a=1&a=2
Type: boolean
addQueryToUrl
将query添加到url上。 注意:如果query中项的值是一个对象或者数组, 将会JSON.stringify这个值(这与qs),如果要还原这个值,请使用JSON.parse(decodeURIComponent(decodeURIComponent(value)))。 如果想将query还原成对象,可以使用formatQuery方法。
Parameters
options
IAddQueryToUrlOptions? (optional, default{}
)
Returns string 拼接好的字符串
Meta
- since: 1.0.2
IConvertTothousandthsOptions
convertTothousandths的选项
separator
分隔符
Type: string
convertTothousandths
将数字字符串转化为千分位
Parameters
options
IConvertTothousandthsOptions (optional, default{}
)options.separator
string 分隔符 (optional, default','
)
Returns any {string}
Meta
- since: 1.0.0
IDateFormatOptions
dateFormat方法的选项
format
输出格式,默认为YYYY-MM-DD HH:mm:ss
Type: string
fallback
时间戳不能正确格式化的时候输出fallback,默认为‘--’
Type: string
isMillisecond
是否是毫秒时间戳,默认为true
Type: boolean
autoTenSecond
是否自动认为10位时间戳是秒时间戳,默认为true
Type: boolean
dateFormat
格式化时间戳,默认输出格式为YYYY-MM-DD HH:mm:ss。不能正确格式化的时候输出fallback,默认为‘--’
Parameters
options
IDateFormatOptions? 选项 (optional, default{}
)options.format
string? 输出格式,默认为YYYY-MM-DD HH:mm:ss (optional, default'YYYY-MM-DD HH:mm:ss'
)options.fallback
string? 时间戳不能正确格式化的时候输出fallback,默认为‘--’ (optional, default'--'
)options.isMillisecond
boolean? 是否是毫秒时间戳,默认为true (optional, defaulttrue
)options.autoTenSecond
boolean? 是否自动认为10位时间戳是秒时间戳,默认为true (optional, defaulttrue
)
Examples
dateFormat(1602491858395) // 2020-10-12 16:37:38
dateFormat(1602491858) // 2020-10-12 16:37:38
Returns string 格式化后的时间戳
Meta
- since: 1.0.4
formatNumberDivisor
把数字转换成带小数的字符串,默认得到万分之一,并保留指定小数,若小数位不够,用0补齐,如210000转换为21.00(单位是万)
Parameters
Examples
formatNumberDivisor(210000)
// 输出为
21.00
formatNumberDivisor(210000, { precision: 0 })
// 输出为
21
Returns string
Meta
- since: 1.1.4
formatNumberPercent
得到百分比,并默认保留两位小数,若小数位数不足,则用0补齐,如1.10
Parameters
num
number 分子 (optional, default0
)total
number 分母 (optional, default100
)options
Object 选项 (optional, default{}
)options.precision
number 保留几位小数 (optional, default0
)
Examples
formatNumberPercent(1, 2)
// 输出为
50.00
Returns string
Meta
- since: 1.1.4
formatQuery
格式化查询字符串为对象 查询字符串的值为原始值,包括JSON字符串 需要配合addQueryToUrl使用
Parameters
query
string 查询字符串 可以是完整的url (optional, default''
)
Examples
formatQuery('http://xxx?b=2&k=1&a=%5B1%2C2%2C3%5D')
// 输出为
{
a: [
1,
2,
3,
],
k: 1,
b: 2,
}
Returns object 查询字符串转换成的对象
Meta
- since: 1.0.2
IGetTimeDurationOptions
getTimeDuration方法的选项
startTimeStamp
起始时间戳 毫秒
Type: number
endTimeStamp
结束时间戳 毫秒
Type: number
IGetTimeDurationResult
getTimeDuration方法的返回值
DDMax
天部分
Type: string
DD
0-30天部分
Type: string
HHMax
小时部分
Type: string
HH
0-23小时部分
Type: string
mmMax
分钟部分
Type: string
mm
0-59分钟部分
Type: string
ssMax
秒部分
Type: string
ss
0-59秒部分
Type: string
SSSMax
毫秒部分
Type: string
SSS
0-999毫秒部分
Type: string
duration
Duration实例
Type: duration.Duration
getTimeDuration
根据起始时间和结束时间得到差值信息
Parameters
options
IGetTimeDurationOptions 选项 (optional, default{}
)options.startTimeStamp
(optional, default0
)options.endTimeStamp
(optional, default0
)
Returns IGetTimeDurationResult
Meta
- since: 1.1.4
IIsCommonAppBroswerOptions
isCommonAppBroswer的选项
pattern
要匹配的内容,正则表达式,默认为/(micromessenger|qq|weibo)/i
Type: RegExp
isCommonAppBroswer
是否是常见的APP的内置浏览器,默认匹配微信、QQ、微博
Parameters
ua
string 浏览器ua (optional, defaultnavigator.userAgent.toLowerCase()
)options
IIsCommonAppBroswerOptions (optional, default{}
)options.pattern
RegExp 要匹配的内容,正则表达式,默认为/(micromessenger|qq|weibo)/i (optional, default/(micromessenger|qq|weibo)/i
)
Returns boolean
Meta
- since: 1.0.2
padEndZero
根据精度,补齐末位的0
Parameters
Examples
padEndZero(1.1, 2)
// 输出为
1.10
Returns string
Meta
- since: 1.1.4
ISplitPriceResult
splitPrice的返回值
price
原始的价格
integer
整数部分
Type: string
decimal
小数部分
Type: string
decimalNoPoint
小数部分没有小数点部分
Type: string
priceFixed
整数加小数部分
Type: string
splitPrice
格式化价格,返回一个对象,包含原始的价格、整数部分、小数部分、小数部分没有小数点部分、整数加小数部分。 如果想要保留合适的小数位数请在调用该方法之前处理好
Parameters
Examples
splitPrice(1.2)
// 输出为
{
price: 1.2,
integer: '1',
decimal: '.2',
decimalNoPoint: '2',
priceFixed: '1.2',
}
Returns ISplitPriceResult 包含原始的价格、整数部分、小数部分、小数部分没有小数点部分、整数加小数部分的对象
Meta
- since: 1.0.9
IToFenOptions
toFen的选项
decimal
保留几位小数,默认为0
Type: number
toFen
将元转换成分
Parameters
options
IToFenOptions (optional, default{}
)options.decimal
number 保留几位小数,默认为0 (optional, default0
)
Examples
toFen(1.25 // 125
toFen(19.9) // 1990,不是1989.9999999999998
Returns any {number}
Meta
- since: 1.0.1
IToYuanOptions
toYuan的选项
decimal
保留几位小数,默认为2
Type: number
decimalIfNeeded
是否只显示必要的小数,比如5.00将显示为5,5.10将显示为5.1,默认为false
Type: boolean
thousandCentimeter
是否千分位
Type: boolean
thousandCentimeterSeparator
千分位符号
Type: string
toYuan
分转化成元,分一般为整数,但该方法也支持小数。 0.105.toFixed(2) 返回的是 0.1 而不是 0.11,所以不用toFixed
Parameters
options
IToYuanOptions 选项 (optional, default{}
)
Examples
toYuan(100) // 1.00
Returns string 格式化后的字符串元
Meta
- since: 1.0.1