🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

sr-utils-base

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sr-utils-base

电商场景下,常用基础工具函数集合。

latest
npmnpm
Version
0.0.6
Version published
Weekly downloads
13
333.33%
Maintainers
1
Weekly downloads
 
Created
Source

电商场景下,常用基础工具函数集合。

一、视图显示

1、金额

1.1 priceFormat

  说明:格式化金额为可以直接显示的字符串
  参数
    price (number|string|Big): 金额(分)
    [fill=false] (boolean): 是否保持两位小数
    [fallback=''] (string): 无效金额时的默认返回
  返回
    (string): 返回一个处理好的字符串。
  例子

_.priceFormat(1000, true);
// =>10.00
_.priceFormat(1000);
// =>10

2、数字

2.1 numberFromat

  说明:数量格式化
  参数
    number (any): 待格式化的参数
    [decimal=0] (number): 小数精度
    [thousandMark=false] (boolean): 是否插入千分位
  返回
    (string): 返回一个处理好的字符串。
  例子

\_.numberFromat(1000000, 2, true);
// =>1,000,000.00

_.numberFromat(1000000);
// =>1000000

2.2 add(加), subtract(减), multiply(乘), divide(除)

  说明:数字加减乘除运算并不丢失精度
  参数
    num1 (number): 参与计算的参数 1
    num2 (number): 参与计算的参数 2
    [digits=2] (number): 输出结果保留的小数精度
  返回
    (string): 返回一个处理好的字符串。
  例子

\_.add(100.01, 2.2);
// =>102.21

_.add(100.01, 2.2, 1);
// =>102.2

3、单位转换

3.1 fen2Yuan

  说明:分转换为元
  参数
    fen (number | string | undefined | null): 待转换的参数
  返回
    (string): 返回处理好的字符串。
  例子

\_.fen2Yuan(1011);
// =>10.11

_.fen2Yuan(1010);
// =>10.1

3.2 yuan2Fen

  说明:元转换为分
  参数
    yuan (number | string ): 待转换的参数
  返回
    (string): 返回处理好的数字。
  例子

\_.yuan2Fen(101.111);
// =>10111

_.yuan2Fen(101);
// =>10100

3.3 kg2g

  说明:kg 转换为 g
  参数
    kg (number ): 待转换的参数
  返回
    (number): 返回转换后的 g 数。
  例子

\_.kg2g(101.1);
// =>101100

3.4 g2kg

  说明:g 转换为 kg
  参数
    g (number ): 待转换的参数
  返回
    (number): 返回转换后的 kg 数。
  例子

\_.g2kg(101);
// =>0.101

3.5 km2m

  说明:km 转换为 m
  参数
    km (number ): 待转换的参数
  返回
    (number): 返回转换后的 m。
  例子

\_.km2m(10);
// =>10000

3.6 m2km

  说明:m 转换为 km
  参数
    m (number ): 待转换的参数
  返回
    (number): 返回转换后的 km。
  例子

\_.m2km(10);
// =>0.01

3.7 percentToDiscount

  说明:百分比转折扣数字
  参数
    value (any): 待转换的参数
  返回
    (number): 返回转换后的折扣。
  例子

\_.percentToDiscount(70);
// =>7
\_.percentToDiscount(75);
// =>7.5

4、手机号

4.1 percentToDiscount

  说明:百分比转折扣数字
  参数
    phone (number | string): 待转换的参数
  返回
    (number | string): 中间四位打*号的手机号。
  例子

\_.phoneNumberEncryption(18511590764);
// =>185****0764

5、url

5.1 objToUrlStr

  说明:将 object 转成 url 后的参数 string
  参数
    obj (object): 待格式化的 obj
    [urlEncode=false] (boolean): 是否开启 encode
    [appendixStr='&'] (string): 需要拼接的后续 string
  返回
    (string): 拼接好的字符串
  例子

\_.objToUrlStr({a:1,b:'222',c:'我是参数'});
// =>a=1&b=222&c=我是参数
\_.objToUrlStr({a:1,b:'222',c:'我是参数'},true);
// =>a=1&b=222&c=%E6%88%91%E6%98%AF%E5%8F%82%E6%95%B0
\_.objToUrlStr({a:1,b:'222',c:'我是参数'},true,'-');
// a=1-b=222-c=%E6%88%91%E6%98%AF%E5%8F%82%E6%95%B0

5.2 urlStrToObj

  说明:将 url 后的参数 string 转成 object
  参数
    url (sting): 待格式化的 string
    [urlDecode=false] (boolean): 是否需要 decode
  返回
    (object): 转化好的 object
  例子

\_.urlStrToObj('?abc=foo&def=%5Basf%5D&xyz=5', true);
// =>{ abc: 'foo', def: '[asf]', xyz: '5' }
\_.urlStrToObj('abc=foo&def=%5Basf%5D&xyz=5');
// =>{ abc: 'foo', def: '%5Basf%5D', xyz: '5' }

二、判断与校验

1、数据类型判断

  isNaN, isArray, isEmpty, isFunction, isJsonString, isNull, isNumber, isObject, isString, isUndefined

2、常用校验

2.1 isEmail

  说明:验证是否是邮箱地址
  参数
    num (string): 待验证的字符串
  返回
    (boolean): 是否是邮箱
  例子

\_.isEmail('441332612@qq.com');
// =>true

2.2 isMobilePhone

  说明:验证是否是手机号(可含 86)
  参数
    num (string): 待验证的字符串
  返回
    (boolean): 是否是手机号
  例子

\_.isMobilePhone('18511590764');
// =>true
\_.isMobilePhone('8618511590764');
// =>true

2.3 isPostCode

  说明:验证是否是邮编
  参数
    num (string): 待验证的字符串
  返回
    (boolean): 是否是邮编
  例子

\_.isPostCode('454781');
// =>true

2.4 isValidIDCard

  说明:验证是否是身份证号
  参数
    value (string): 待验证的字符串
    [isIncludeHongKongAndAoMenAndTaiwan=true] (boolean): 是否包含港澳台
  返回
    (boolean): 是否是身份证号
  例子

\_.isValidIDCard('410883199309236543');
// =>true

2.5 isPositiveNum

  说明:验证是否是正数
  参数
    value (number): 待验证的参数
  返回
    (boolean): 是否是正数
  例子

\_.isPositiveNum(3.1);
// =>true
\_.isPositiveNum(-3.1);
// =>false

2.6 isPositiveInteger

  说明:验证是否是正正数数
  参数
    value (number): 待验证的参数
  返回
    (boolean): 是否是正整数
  例子

\_.isPositiveInteger(3.1);
// =>false
\_.isPositiveInteger(3);
// =>true

2.7 digitalCheck

  说明:所填数字范围校验
  参数
    value (string): 待验证的参数
    minValue (number): 最小值(不包含)
    maxValue (number): 最大值(不包含)
    [decimalPlaces = 0] (number): 第一个参数的小数位最多有几位
  返回
    (boolean): 是否符合验证条件(在最小值和最大值之间且小数位数满足要求)
  例子

\_.digitalCheck('6.55',3,10);
// =>false
\_.digitalCheck('6.55',3,10,2);
// =>true

三、功能性方法

1、图片

1.1 imageMogr

enum EnumImageMogr2Type {
  CROP = 'crop', // 裁剪
  THUMBNAIL = 'thumbnail', // 缩放
}
interface ImageMogrOptions {
  width?: number;
  height?: number;
  quality?: number;
  strip?: boolean;
  format?: 'jpg' | 'bmp' | 'gif' | 'png' | 'webp' | 'yjpeg';
  interlace?: 0 | 1;
  type?: EnumImageMogr2Type;
}
  说明:万象图片处理
  参数
    url? (string): 待验证的参数
    options? (ImageMogrOptions): 最小值(不包含)
  返回
    (string): 返回处理后的图片地址
  例子

\_.imageMogr('https://cdn-we-retail.ym.tencent.com//web/order_ic_lite.png', {
    width: 300,
    height: 300,
    quality: 0.5,
    format: 'png',
  });
// =>https://cdn-we-retail.ym.tencent.com//web/order_ic_lite.png?imageMogr2/thumbnail/300x300/quality/0.5/strip/format/png

2、颜色

2.1 hexToRgb

  说明:颜色处理 hex ---> rgb
  参数
    h (string): 待处理的哈希值
  返回
    (string): 返回处理后的 rgb 格式
  例子

\_.hexToRgb('#5a66ff')
// =>rgb(90,102,255)

2.2 rgbaToHexA

  说明:颜色处理 rgba ---> hex
  参数
    r (number): 0255
    g (number): 0
255
    b (number): 0255
    a (number): 0
1
  返回
    (string): 返回处理后的 hex 格式
  例子

\_.rgbaToHexA(90, 102, 255, 0.2)
// =>#5a66ff33

3 时间处理

3.1 timeFormat

  说明:时间格式化
  参数
    base (string | number | Moment): 待处理的时间
    [tmpl = 'YYYY-MM-DD HH:mm:ss'] (string): 输出的时间格式
  返回
    (string): 返回处理好的时间
  例子

\_.timeFormat('2022-11-11 14:48:26', 'YYYY-MM-DD')
// => 2022-11-11
\_.timeFormat(1669013697063)
// => 2022-11-21 14:54:57
\_.timeFormat('1669013697063')
// => 2022-11-21 14:54:57

4 字符串

4.1 getStrLen

  说明:时间格式化
  参数
    str (string): 待处理的时间
  返回
    (number): 返回字符串的长度(中文+2)
  例子

\_.getStrLen('')
// => 0
\_.getStrLen('abc)
// => 3
\_.getStrLen('abc哈哈')
// => 7

5 安全

5.1 nanoid

  说明:生成随机不重复的 key
  参数
    size? (number): 生成串的长度
  返回
    (string): 返回加密好的字符串
  例子

\_.nanoid('10')
// => BxNhJFhDwp
\_.nanoid('10')
// => KJ_LtzVP0SPKwzw_fQg8b

5.2 nanoNum

  说明:生成随机不重复的 key
  返回
    (number): 返回加密好的串
  例子

\_.nanoNum()
// => 514208596452099

6 位置

6.1 getCoordinateDistance

  说明:计算获取两个坐标点之间的距离(m)
  参数
    lat1 (number): 第一个坐标的经度
    lng1 (number): 第一个坐标的纬度
    lat2 (number): 第二个坐标的经度
    lng2 (number): 第二个坐标的纬度
  返回
    (number): 返回字符串的长度(中文+2)
  例子

\_.getCoordinateDistance(109.7, 31.84, 110.96, 31.36)
// => 141789.1293000133

7 请求

7.1 sleep

  说明:睡眠函数
  参数
    sleep (number): 延迟时间 ms
  返回
    (promise): promise
  例子

\_.sleep(500)

7.2 getErrMsg

  说明:睡眠函数
  参数
    err (unknown): err 数据
    [defaultMsg = '网络错误'] (string): 默认的错误消息
  返回
    (string): 返回错误信息
  例子

\_.getErrMsg({msg: '接口超时'})
// => 接口超时

8 位置

8.1 downloadFile

  说明:文件下载
  参数
    fileUrl (string): 文件地址
    fileName (string): 文件名称
  例子

\_.downloadFile('https://cdn-we-retail.ym.tencent.com//web/order_ic_lite.png', '示例图片')

FAQs

Package last updated on 29 Dec 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts