1.1.4 • Published 1 year ago

@yeung2017/utils v1.1.4

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

常用工具函数

平时用到的常用工具函数,从1.0.9版本使用ts开发 支持 es 方式引入

// es6的方式
import { convertTothousandths } from "@yeung2017/utils";

API

Table of Contents

IAddQueryToUrlOptions

addQueryToUrl方法的选项

url

url

Type: string

query

查询字符串,也可以是个对象

Type: (string | object)

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 {})

    • options.url string? url (optional, default '')
    • options.query (string | object)? 查询字符串,也可以是个对象 (optional, default '')
    • options.mergeQuery boolean? 是否覆盖更新query, (optional, default true)

Returns string 拼接好的字符串

Meta

  • since: 1.0.2

IConvertTothousandthsOptions

convertTothousandths的选项

separator

分隔符

Type: string

convertTothousandths

将数字字符串转化为千分位

Parameters

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

  • timeStamp (number | string)? 时间戳
  • 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, default true)
    • options.autoTenSecond boolean? 是否自动认为10位时间戳是秒时间戳,默认为true (optional, default true)

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

  • number number (optional, default 0)
  • options Object 选项 (optional, default {})

    • options.divisor number 除数,默认为10000,如果为100,则表示百分之一,如果为1,则表示原数保留两位小数 (optional, default 10000)
    • options.precision number 保留几位小数 (optional, default 2)

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, default 0)
  • total number 分母 (optional, default 100)
  • options Object 选项 (optional, default {})

    • options.precision number 保留几位小数 (optional, default 0)

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, default 0)
    • options.endTimeStamp (optional, default 0)

Returns IGetTimeDurationResult

Meta

  • since: 1.1.4

IIsCommonAppBroswerOptions

isCommonAppBroswer的选项

pattern

要匹配的内容,正则表达式,默认为/(micromessenger|qq|weibo)/i

Type: RegExp

isCommonAppBroswer

是否是常见的APP的内置浏览器,默认匹配微信、QQ、微博

Parameters

  • ua string 浏览器ua (optional, default navigator.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

  • num number (optional, default 0)
  • precision number (optional, default 0)

Examples

padEndZero(1.1, 2)
// 输出为
1.10

Returns string

Meta

  • since: 1.1.4

ISplitPriceResult

splitPrice的返回值

price

原始的价格

Type: (string | number)

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

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

  • num (number | string) 分,不一定是整数
  • options IToYuanOptions 选项 (optional, default {})

    • options.decimal number 保留几位小数,默认为2 (optional, default 2)
    • options.thousandCentimeter boolean 是否千分位 (optional, default false)
    • options.thousandCentimeterSeparator string 千分位符号 (optional, default ',')
    • options.decimalIfNeeded boolean 是否只显示必要的小数,比如5.00将显示为5,5.10将显示为5.1,默认为false (optional, default false)

Examples

toYuan(100) // 1.00

Returns string 格式化后的字符串元

Meta

  • since: 1.0.1
1.1.4

1 year ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago