
Security News
GitHub Actions Checkout Now Blocks Risky pull_request_target Checkouts
GitHub Actions checkout now blocks risky pull_request_target checkouts by default to help prevent pwn request supply chain attacks.
sr-utils-base
Advanced tools
电商场景下,常用基础工具函数集合。
说明:格式化金额为可以直接显示的字符串
参数
price (number|string|Big): 金额(分)
[fill=false] (boolean): 是否保持两位小数
[fallback=''] (string): 无效金额时的默认返回
返回
(string): 返回一个处理好的字符串。
例子
_.priceFormat(1000, true);
// =>10.00
_.priceFormat(1000);
// =>10
说明:数量格式化
参数
number (any): 待格式化的参数
[decimal=0] (number): 小数精度
[thousandMark=false] (boolean): 是否插入千分位
返回
(string): 返回一个处理好的字符串。
例子
\_.numberFromat(1000000, 2, true);
// =>1,000,000.00
_.numberFromat(1000000);
// =>1000000
说明:数字加减乘除运算并不丢失精度
参数
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
说明:分转换为元
参数
fen (number | string | undefined | null): 待转换的参数
返回
(string): 返回处理好的字符串。
例子
\_.fen2Yuan(1011);
// =>10.11
_.fen2Yuan(1010);
// =>10.1
说明:元转换为分
参数
yuan (number | string ): 待转换的参数
返回
(string): 返回处理好的数字。
例子
\_.yuan2Fen(101.111);
// =>10111
_.yuan2Fen(101);
// =>10100
说明:kg 转换为 g
参数
kg (number ): 待转换的参数
返回
(number): 返回转换后的 g 数。
例子
\_.kg2g(101.1);
// =>101100
说明:g 转换为 kg
参数
g (number ): 待转换的参数
返回
(number): 返回转换后的 kg 数。
例子
\_.g2kg(101);
// =>0.101
说明:km 转换为 m
参数
km (number ): 待转换的参数
返回
(number): 返回转换后的 m。
例子
\_.km2m(10);
// =>10000
说明:m 转换为 km
参数
m (number ): 待转换的参数
返回
(number): 返回转换后的 km。
例子
\_.m2km(10);
// =>0.01
说明:百分比转折扣数字
参数
value (any): 待转换的参数
返回
(number): 返回转换后的折扣。
例子
\_.percentToDiscount(70);
// =>7
\_.percentToDiscount(75);
// =>7.5
说明:百分比转折扣数字
参数
phone (number | string): 待转换的参数
返回
(number | string): 中间四位打*号的手机号。
例子
\_.phoneNumberEncryption(18511590764);
// =>185****0764
说明:将 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
说明:将 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' }
isNaN, isArray, isEmpty, isFunction, isJsonString, isNull, isNumber, isObject, isString, isUndefined
说明:验证是否是邮箱地址
参数
num (string): 待验证的字符串
返回
(boolean): 是否是邮箱
例子
\_.isEmail('441332612@qq.com');
// =>true
说明:验证是否是手机号(可含 86)
参数
num (string): 待验证的字符串
返回
(boolean): 是否是手机号
例子
\_.isMobilePhone('18511590764');
// =>true
\_.isMobilePhone('8618511590764');
// =>true
说明:验证是否是邮编
参数
num (string): 待验证的字符串
返回
(boolean): 是否是邮编
例子
\_.isPostCode('454781');
// =>true
说明:验证是否是身份证号
参数
value (string): 待验证的字符串
[isIncludeHongKongAndAoMenAndTaiwan=true] (boolean): 是否包含港澳台
返回
(boolean): 是否是身份证号
例子
\_.isValidIDCard('410883199309236543');
// =>true
说明:验证是否是正数
参数
value (number): 待验证的参数
返回
(boolean): 是否是正数
例子
\_.isPositiveNum(3.1);
// =>true
\_.isPositiveNum(-3.1);
// =>false
说明:验证是否是正正数数
参数
value (number): 待验证的参数
返回
(boolean): 是否是正整数
例子
\_.isPositiveInteger(3.1);
// =>false
\_.isPositiveInteger(3);
// =>true
说明:所填数字范围校验
参数
value (string): 待验证的参数
minValue (number): 最小值(不包含)
maxValue (number): 最大值(不包含)
[decimalPlaces = 0] (number): 第一个参数的小数位最多有几位
返回
(boolean): 是否符合验证条件(在最小值和最大值之间且小数位数满足要求)
例子
\_.digitalCheck('6.55',3,10);
// =>false
\_.digitalCheck('6.55',3,10,2);
// =>true
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
说明:颜色处理 hex ---> rgb
参数
h (string): 待处理的哈希值
返回
(string): 返回处理后的 rgb 格式
例子
\_.hexToRgb('#5a66ff')
// =>rgb(90,102,255)
说明:颜色处理 rgba ---> hex
参数
r (number): 0255 255
g (number): 0
b (number): 0255 1
a (number): 0
返回
(string): 返回处理后的 hex 格式
例子
\_.rgbaToHexA(90, 102, 255, 0.2)
// =>#5a66ff33
说明:时间格式化
参数
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
说明:时间格式化
参数
str (string): 待处理的时间
返回
(number): 返回字符串的长度(中文+2)
例子
\_.getStrLen('')
// => 0
\_.getStrLen('abc)
// => 3
\_.getStrLen('abc哈哈')
// => 7
说明:生成随机不重复的 key
参数
size? (number): 生成串的长度
返回
(string): 返回加密好的字符串
例子
\_.nanoid('10')
// => BxNhJFhDwp
\_.nanoid('10')
// => KJ_LtzVP0SPKwzw_fQg8b
说明:生成随机不重复的 key
返回
(number): 返回加密好的串
例子
\_.nanoNum()
// => 514208596452099
说明:计算获取两个坐标点之间的距离(m)
参数
lat1 (number): 第一个坐标的经度
lng1 (number): 第一个坐标的纬度
lat2 (number): 第二个坐标的经度
lng2 (number): 第二个坐标的纬度
返回
(number): 返回字符串的长度(中文+2)
例子
\_.getCoordinateDistance(109.7, 31.84, 110.96, 31.36)
// => 141789.1293000133
说明:睡眠函数
参数
sleep (number): 延迟时间 ms
返回
(promise): promise
例子
\_.sleep(500)
说明:睡眠函数
参数
err (unknown): err 数据
[defaultMsg = '网络错误'] (string): 默认的错误消息
返回
(string): 返回错误信息
例子
\_.getErrMsg({msg: '接口超时'})
// => 接口超时
说明:文件下载
参数
fileUrl (string): 文件地址
fileName (string): 文件名称
例子
\_.downloadFile('https://cdn-we-retail.ym.tencent.com//web/order_ic_lite.png', '示例图片')
FAQs
The npm package sr-utils-base receives a total of 13 weekly downloads. As such, sr-utils-base popularity was classified as not popular.
We found that sr-utils-base demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
GitHub Actions checkout now blocks risky pull_request_target checkouts by default to help prevent pwn request supply chain attacks.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.