0.1.0 • Published 5 years ago

peppa-utils v0.1.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

Utils for javascript

js实用工具库

目录

Install

安装

$ npm i [-S|-D] peppa-utils

Useage

使用

整体引入

const utils = require('peppa-utils');
Utils.zeroFill(6);  // -> 06

最小化引入(推荐)

const zeroFill = require('peppa-utils/zeroFill');
zeroFill(6);  // -> 06

dateFormat

/**
 * 日期格式化
 * @since 0.0.3
 * @param {string} [format='yyyy-MM-dd HH:mm:ss'] 格式
 * @param {object} [date=new Date] 日期对象, 默认取当前日期对象
 * @return {string} 格式化后的字符串
 */
dateFormat([format='yyyy-MM-dd HH:mm:ss'], [date=new Date]);

Example

dateFormat();                                                         // -> 格式为'yyyy-MM-dd HH:mm:ss'的当前时间
dateFormat(new Date('2017/6/12 6:6:6'));                              // -> 2017-06-11 06:06:06
dateFormat('yyyy-MM-dd HH:mm:ss', new Date('2017/6/12 6:6:6'));       // -> 2017-06-12 06:06:06
dateFormat('yyyy-MM-dd HH:mm:ss vvv', new Date('2017/6/12 6:6:6'));   // -> 2017-06-12 06:06:06 000
dateFormat('yy-M-d h:m:s v a', new Date('2017/6/12 16:6:6'));         // -> 17-6-12 3:6:6 0 pm
dateFormat('yy-M-d h:m:s v A', new Date('2017/6/12 6:6:6'));          // -> 17-6-12 5:6:6 0 AM
dateFormat('OOO dd, yyyy, DDD', new Date('2017/6/12 6:6:6'));         // -> Jun 12, 2017, Mon
dateFormat('O dd, yyyy, D', new Date('2017/6/12 6:6:6')));            // -> June 12, 2017, Monday
格式字符描述返回值示例
(yy)yy(四)两位数的年份完整(19)99或(20)03
(M)M(带前导零)月份(0)1-12
(d)d(带前导零)日期(0)1-31
(H)H(带前导零)24小时制时钟(0)0-23
(h)h(带前导零)12小时制时钟(0)1-12
(m)m(带前导零)分钟(0)0-59
(s)s(带前导零)秒钟(0)0-59
(vv)v(带前导零)毫秒数(00)0-999
w星期0-6
L是否为闰年1或0
a小写午前或午后am或pm
A大写午前或午后AM或PM
(OO)O(仅前三个字母缩写)英文表达的月份Jan(uary)-Dec(ember)
(DD)D(仅前三个字母缩写)英文表达的星期Sun(day)-Sat(urday)

优先级顺序

  1. 格式化的优先级顺便按此列表顺序
  2. 带前导零的优先级高过不带前导零
  3. 仅前三个字母缩写的优先级高过全称

numberFormat

/**
 * 数字格式化
 * @since 0.0.3
 * @param {number} num 数字
 * @param {number} [decimals=0] 保留小数位数, 超出则四舍五入取整, 可为负数. 默认0不保留小数
 * @param {string} [thousands_separator=','] 千位分隔符, 默认','
 * @param {string} [decimals_point='.'] 小数点符号, 默认'.'
 * @return {string} 格式化后的字符串
 */
numberFormat(num, [decimals=0], [thousands_separator=','], [decimals_point='.']);

Example

numberFormat(1234567890.0987654321, 0);           // -> 1,234,567,890
numberFormat(1234567890.0987654321, -2);          // -> 1,234,567,900
numberFormat(1234567890.0987654321, 2);           // -> 1,234,567,890.10
numberFormat(1234567890.0987654321, 2, '');       // -> 1234567890.10
numberFormat(1234567890.0987654321, 2, ' ', ','); // -> 1 234 567 890,10

strToDate

/**
 * 字符串转日期对象
 * @since 0.0.5
 * @param {string} str 描述日期的字符串
 * @return {object} 日期对象
 */
strToDate(str);

Example

strToDate('2017-06-12 16:16:16');     // -> 2017-06-12T08:16:16.000Z
strToDate('a2017b06c12d16e16f16g');   // -> 2017-06-12T08:16:16.000Z
strToDate('20170612161616');          // -> 2017-06-12T08:16:16.000Z
strToDate('201706121616');            // -> 2017-06-12T08:16:00.000Z
strToDate('2017061216');              // -> 2017-06-12T08:00:00.000Z
strToDate('20170612');                // -> 2017-06-11T16:00:00.000Z
strToDate('201706');                  // -> Invalid Date
strToDate('2017');                    // -> Invalid Date

truncate

/**
 * 字符串截取
 * @since 0.0.3
 * @param {string} str 待截取的字符串
 * @param {number} [len=30] 截取长度, 默认30
 * @param {string} [omission='...'] 省略字符串, 默认省略号(...)
 * @param {string|regexp} [separator=','] 截取处可忽略的字符, 默认英文逗号(,)
 * @return {string} 截取后的字符串
 */
truncate(str, [len=30], [omission='...'], [separator=/[,,]+\s?/]);

Example

truncate('待截取的字符串,分隔符是逗号,超出的会用省略号代替,默认截取30个字符,包括省略字符串的长度,可设置。');
// -> 待截取的字符串,分隔符是逗号,超出的会用省略号代替,默..

truncate('待截取的字符串,分隔符是逗号,超出的会用省略号代替,默认截取30个字符,包括省略字符串的长度,可设置。', 60);
// -> 待截取的字符串,分隔符是逗号,超出的会用省略号代替,默认截取30个字符,包括省略字符串的长度,可设置。

truncate('待截取的字符串,分隔符是逗号,超出的会用省略号代替,默认截取30个字符,包括省略字符串的长度,可设置。', 40, ' [...]');
// -> 待截取的字符串,分隔符是逗号,超出的会用省略号代替,默认截取30个字 [...]

truncate('待截取的字符串,分隔符是逗号,超出的会用省略号代替,默认截取30个字符,包括省略字符串的长度,可设置。', 20, '...更多', '');
// -> 待截取的字符串,分隔符是逗号,...更多

truncate('待截取的字符串,分隔符是逗号,超出的会用省略号代替,默认截取30个字符,包括省略字符串的长度,可设置。', 20, '...更多', ',');
// -> 待截取的字符串,分隔符是逗号...更多

zeroFill

/**
 * 为数字补指定位数的零
 * @since 0.0.2
 * @param {number} num 数字
 * @param {number} [len=2] 目标长度
 * @return {string} 补零后的字符串
 */
zeroFill(num, [len=2]);

Example

zeroFill(0);        // -> 00
zeroFill(6);        // -> 06
zeroFill(8, 3);     // -> 008
zeroFill(10);       // -> 10
zeroFill(10, 4);    // -> 0010
zeroFill(1000, 3);  // -> 1000

License

MIT - xiewulong

0.1.0

5 years ago

0.0.9

6 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago