npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@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方法的选项

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