文档

base64

decode

decode(input, [options])

将 base64 编码的字符串解码为一个 UTF8 字符串、十六进制字符串或者字节数组。

起始版本

0.3.0

参数

  • input (string)
  • [options = {} (Object)]
    • [encoding = 'utf8' (string)]:输出编码,可以是'utf8' or 'hex' or 'binary'

返回值

  • (string | Array)

示例

const input = 'aGVsbG8g5L2g5aW9'

// 返回 utf8 字符串
decode(input)
// => 'hello 你好'

// 返回十六进制字符串
decode(input, { encoding: 'hex' })
// => '68656c6c6f20e4bda0e5a5bd'

// a byte array
// 返回字节数组
decode(input, { encoding: 'binary' })
// => [104, 101, 108, 108, 111, 32, 228, 189, 160, 229, 165, 189]

encode

将一个 UTF8 字符串、字节数组或者Uint8Array编码为 base64 字符串。

encode(input)

起始版本

0.3.0

参数

  • input (string | Array | Uint8Array)

返回值

  • (string)

示例

// 输入字符串
encode('hello 你好')
// => 'aGVsbG8g5L2g5aW9'

// 输入字节数组
const bytes = [104, 101, 108, 108, 111, 32, 228, 189, 160, 229, 165, 189]
encode(bytes)
// => 'aGVsbG8g5L2g5aW9'

// 输入 Uint8Array
const uint8 = new Uint8Array(bytes)
encode(uint8)
// => 'aGVsbG8g5L2g5aW9'

char

isAlphabetic

isAlphabetic(ch)

判断一个字符是否是 a-z 或 A-Z。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isAlphabetic('a');
// => true

isAlphabetic('1');
// => false

isAlphanumeric

isAlphanumeric(ch)

判断一个字符是否是 a-z 或 A-Z 或 0-9。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isAlphanumeric('a');
// => true

isAlphanumeric('1');
// => true

isAlphanumeric('*');
// => false

isASCII

isASCII(ch)

判断一个字符是否是一个 ASCII 字符。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isASCII('a');
// => true

isASCII('1');
// => true

isASCII('你');
// => false

isCJK

isCJK(ch)

判断一个字符是否是一个 CJK(中文、日文、韩文)字符。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isCJK('你');
// => true

isCJK('の');
// => true

isControl

isControl(ch)

Detect a character whether it is a control character (opens new window). 判断一个字符是否是一个控制字符 (opens new window)

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isControl('\t');
// => true

isControl('\r');
// => true

isDigit

isDigit(ch)

判断一个字符是否是一个十进制数字(0-9)。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isDigit('0');
// => true

isDigit('1');
// => true

isGraph

isGraph(ch)

判断一个字符是否是一个图形字符 (opens new window)

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isGraph('0');
// => true

isGraph('a');
// => true

isHexadecimal

isHexadecimal(ch)

判断一个字符是否是一个十六进制字符(0-9、a-f、A-F)。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isHexadecimal('0');
// => true

isHexadecimal('a');
// => true

isHexadecimal('A');
// => true

isLower

isLower(ch)

判断一个字符是否是小写字符(a-z)。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isLower('a');
// => true

isPrint

isPrint(ch)

判断一个字符是否是可打印字符 (opens new window)

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isPrint('a');
// => true

isPunctuation

isPunctuation(ch)

Detect a character whether it is a punctuation character. 判断一个字符是否是标点字符。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isPunctuation(',');
// => true

isSpace

isSpace(ch)

判断一个字符是否是一个空格字符。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isSpace(' ');
// => true

isUpper

isUpper(ch)

判断一个字符是否是大写字符(A-Z)。

起始版本

0.1.0

参数

  • ch (string):长度为 1 的字符串。

返回值

  • (boolean)

示例

isUpper('a');
// => true

get

get(key)

获取指定名称的 Cookie 值,使用decodeURIComponent解码。

起始版本

0.1.0

参数

  • key (string):Cookie 名称。

返回值

  • (string)

getAll

getAll()

获取所有的 Cookie 值,使用decodeURIComponent解码。

起始版本

0.1.0

返回值

  • (Object)

getJson

getJson(key)

获取指定名称的 Cookie 值,使用JSON.parse解码。

起始版本

0.1.0

参数

  • key (string):Cookie 名称。

返回值

  • (Any)

getRaw

getRaw(key)

获取指定名称的 Cookie 值,不应用任何解码。

起始版本

0.1.0

参数

  • key (string):Cookie 名称。

返回值

  • (string)

isEnabled

isEnabled()

检测 Cookie 功能是否启用。

起始版本

0.1.0

返回值

  • (boolean)

remove

remove(key, [options])

移除当前域名下指定名称的 Cookie。

起始版本

0.1.0

参数

  • key (string):Cookie 名称。
  • [options] (Object):Cookie 配置参数。
    • [domain] (string)
    • [path = "/"] (string)

set

set(key, value, [options])

设置一个 Cookie,value参数将会使用encodeURIComponent进行编码。

起始版本

0.1.0

参数

  • key (string):Cookie 名称
  • value (string):Cookie 值。
  • [options] (Object):Cookie 配置。
    • [domain] (string):Cookie 所属域名。
    • [path = "/"] (string):Cookie 所属路径。
    • [expires] (number|string|Date):可以是一个Date对象,一个可被Date.parse()解析的日期字符串,一个整数(单位:天),或者一个带时间后缀的数值字符串。
    • [max-age] (number):Cookie 持续时间。
    • [samesite] (boolean)
    • [secure] (boolean)
单位后缀 含义
Y
M
D
h
m
s

setJson

set(key, value, [options])

set,设置一个 Cookie,只是value参数将会使用JSON.stringify进行编码。

起始版本

0.1.0

参数

  • key (string):Cookie 名称
  • value (string):Cookie 值。
  • [options] (Object):Cookie 配置。
    • [domain] (string):Cookie 所属域名。
    • [path = "/"] (string):Cookie 所属路径。
    • [expires] (number|string|Date):可以是一个Date对象,一个可被Date.parse()解析的日期字符串,一个整数(单位:天),或者一个带时间后缀的数值字符串。
    • [max-age] (number):Cookie 持续时间。
    • [samesite] (boolean)
    • [secure] (boolean)

setRaw

setRaw(key, value, [options])

set,设置一个 Cookie,只是value参数不使用任何编码。

起始版本

0.1.0

参数

  • key (string):Cookie 名称
  • value (string):Cookie 值。
  • [options] (Object):Cookie 配置。
    • [domain] (string):Cookie 所属域名。
    • [path = "/"] (string):Cookie 所属路径。
    • [expires] (number|string|Date):可以是一个Date对象,一个可被Date.parse()解析的日期字符串,一个整数(单位:天),或者一个带时间后缀的数值字符串。
    • [max-age] (number):Cookie 持续时间。
    • [samesite] (boolean)
    • [secure] (boolean)

date

diff

diff(date1, date2, [unit], [roundFunc])

计算两个日期之间的差,可以指定单位及四舍五入函数。

起始版本

0.1.0

参数

  • date1 (number|Date|string):一个时间戳(单位:毫秒),或一个Date对象,或一个可被解析的日期字符串。
  • date2 (number|Date|string):一个时间戳(单位:毫秒),或一个Date对象,或一个可被解析的日期字符串。
  • [unit = "ms"] (string):一个表示时间单位的字符串,d(表示天),详细见下面表格。
  • [roundFunc = Math.round] (Function):一个四舍五入函数。

返回值

  • (number)

时间单位

单位值 表示含义
Y
M
D
h 小时
m 分钟
s
ms 毫秒

示例

const date1 = new Date(2019, 1, 10, 0, 0, 0);
const date2 = '2019-01-01 00:00:00';
diff(date1, date2);
// => 3456000000
diff(date1, date2, 'D')
// => 40

format

format(date, format, [isUTC])

根据指定的格式对一个日期格式化。

起始版本

0.1.0

参数

  • date (number|string from 0.8.0|Date):一个时间戳数值(单位:毫秒)或可解析的日期字符串或一个Date对象。
  • format (string):一个占位符替换字符串,为 moment format tokens (opens new window) 的一部分,具体查看下面表格。
  • [isUTC = false] (boolean):是否使用协调世界时(UTC)。

返回值

  • (string)

Format tokens

Token Output
YY 70 71 ... 18 19
YYYY 1970 1971 ... 2018 2019
M 1 2 ... 11 12
MM 01 02 ... 11 12
D 1 2 ... 30 31
DD 01 02 ... 30 31
H 0 1 ... 22 23
HH 00 01 ... 22 23
h 1 2 ... 11 12
hh 01 02 ... 11 12
m 1 2 ... 58 59
mm 01 02 ... 58 59
s 1 2 ... 58 59
ss 01 02 ... 58 59

示例

const date = new Date(1970, 0, 1, 13, 1, 1);
format(date, 'YYYY-MM-DD HH:mm:ss');
// => "1970-01-01 13:01:01"
format(date, 'YYYY-M-D h:m:s');
// => "1970-1-1 1:1:1"

parse

parse(date, [isUTC])

起始版本

0.10.0

参数

  • date (number|string|Date):一个时间戳数值(单位:毫秒)或可解析的日期字符串或一个Date对象。
  • format (string):一个占位符替换字符串,为 moment format tokens (opens new window) 的一部分,具体查看下面表格。
  • [isUTC = false] (boolean):是否使用协调世界时(UTC)。

返回值

  • (object)

示例

// In UTC+0800
j
parse(0)
// => { years: 1970, months: 0, dates: 1, hours: 8, minutes: 0, seconds: 0, milliseconds: 0 }
parse(new Date(0))
// => { years: 1970, months: 0, dates: 1, hours: 8, minutes: 0, seconds: 0, milliseconds: 0 }
parse('Thu, 01 Jan 1970 00:00:00 GMT')
// => { years: 1970, months: 0, dates: 1, hours: 8, minutes: 0, seconds: 0, milliseconds: 0 }

parse(0, true)
// => { years: 1970, months: 0, dates: 1, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 }
parse(new Date(0), true)
// => { years: 1970, months: 0, dates: 1, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 }
parse('Thu, 01 Jan 1970 00:00:00 GMT', true)
// => { years: 1970, months: 0, dates: 1, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 }

timeAgo

timeAgo.format(date, [locale], [nowDate])

将一个日期格式化为“5 分钟之前”之类的字符串。

起始版本

0.1.0

参数

  • date (number|Date|string):一个时间戳(单位:毫秒),或一个Date对象,或一个可被解析的日期字符串。
  • [locale = "en_US"] (string):时区,内置支持"en_US""zh_CN"
  • [nowDate = new Date() (Date):比对日期。

返回值

  • (string)

示例

const d = new Date();
d.setMinutes(d.getMinutes() - 10);
timeAgo.format(d);
// => "10 minutes ago"

timeAgo.format(d, 'zh_CN');
// => "10 分钟前"

dom

clientX

clientX(elem)

获取一个元素左边界距离视口(浏览器窗口可视区域)左边界距离。

起始版本

0.1.0

参数

  • elem (Element)

返回值

  • (number)

示例

const el = document.getElementById('el');
const x = clientX(el);
// x => 100

clientY

clientY(elem)

获取一个元素顶部距离视口(浏览器窗口可视区域)顶部距离。

起始版本

0.1.0

参数

  • elem (Element)

返回值

  • (number)

示例

const el = document.getElementById('el');
const y = clientY(el);
// y => 100

createEvent

createEvent(type, [options])

创建一个自定义事件对象。

起始版本

0.1.0

参数

  • type (string):事件名称。
  • [options] (string):事件配置对象。
    • [bubbles = false] (boolean):事件是否冒泡。
    • [cancelable = false] (boolean):事件是否可被取消。
    • [detail = null] (Object):附加的数据。

返回值

  • (Event)

示例

const btn = document.getElementById('btn');
const event = createEvent('click');

btn.dispatchEvent(event);

domReady

domReady(callback)

延迟执行一个回调函数,直到DOMContentLoaded事件触发或者 DOM 可访问时执行。如果domReady执行时,DOMContentLoaded 事件已经触发或者 DOM 已经可访问,则callback会在下一个事件循环(event loop)被执行。

起始版本

0.1.0

参数

  • callback (Function):被执行的回调函数。

示例

domReady(function () {
  // ...
});

// 可以使用多次。
domReady(function () {
  // 其他回调
});

insertScript

insertScript(url, [props])

插入一个<script>标签到文档中。

起始版本

0.1.0

参数

  • url (string)<script>标签的src属性。
  • [props] (Object):其他<script>标签支持的属性。

isElement

isElement(obj)

判断一个值是否为元素对象。

起始版本

0.1.0

参数

  • obj (Any):任意值。

返回值

  • (boolean)

isInViewport

isInViewport(el)

判断一个元素是否位于视口(浏览器可视区域)内。

起始版本

0.1.0

参数

  • el (Element):一个元素。

返回值

  • (boolean)

isWindow

isWindow(obj)

判断一个值是否是window对象。

起始版本

0.1.0

参数

  • obj (Any):任意值。

返回值

  • (boolean)

pageX

pageX(el)

返回一个元素距离页面左边界的水平距离。

起始版本

0.1.0

参数

  • el (Element)

返回值

  • (number)

示例

const el = document.getElementById('el')
pageX(el)

pageY

pageY(el)

返回一个元素距离页面顶部的竖直距离。

起始版本

0.1.0

参数

  • el (Element)

返回值

  • (number)

示例

const el = document.getElementById('el')
pageY(el)

scrollTo

scrollTo(x, y)
scrollTo(options)
scrollTo(elOrWindow, x, y)
scrollTo(elOrWindow, options)

滚动页面或元素到指定位置。

起始版本

0.1.0

参数

  • [x = 0] (number)
  • [y = 0] (number)
  • [elOrWindow = window] (Element | Window)
  • [options] (ExScrollToOptions)

示例

// 滚动页面到 (100, 100)
scroll(100, 100)

// 平滑滚动页面到 (100, 100)
scroll({ x: 100, y: 100, behavior: 'smooth' })

// 滚动页面到 (100, 100),并且应用一个缓动函数
scroll({ x: 100, y: 100, easing: 'ease-out' })

// 滚动元素到 (100, 100)
scroll(el, 100, 100)

// 平滑滚动元素到 (100, 100)
scroll(el, { x: 100, y: 100, behavior: 'smooth' })

// 滚动元素到 (100, 100),并且应用一个缓动函数
scroll(el, { x: 100, y: 100, easing: 'ease-out' })

scrollX

scrollX([elOrWindow])

返回一个元素或页面的水平滚动距离。

起始版本

0.1.0

参数

  • [elOrWindow = window] (Element|Window):一个元素或window对象。

返回值

  • (number)

示例

// 如果不传任何参数,则返回页面的水平滚动距离。
scrollX();

const el = document.getElementById('el')
scrollX(el);

scrolY

scrollY([elOrWindow])

返回一个元素或页面的竖直滚动距离。

起始版本

0.1.0

参数

  • [elOrWindow = window] (Element|Window):一个元素或window对象。

返回值

  • (number)

示例

// 如果不传任何参数,则返回页面的竖直滚动距离。
scrollY();

const el = document.getElementById('el')
scrollY(el);

viewport

viewport([elOrWindow])

获取一个元素或window的视口宽度和高度。

起始版本

0.1.0

参数

  • [elOrWindow = window] (Element|Window):一个元素或window对象。

返回值

  • (Object)

示例

viewport();
// => { width: 1920, height: 900 }

easing

cubicBezier

cubicBezier(x1, y1, x2, y2)

如同 CSS 过渡(transition)的cubic-bezier(),该方法生成一个缓动函数(easing function)。

起始版本

0.2.0

参数

  • x1 (number)
  • y1 (number)
  • x2 (number)
  • y2 (number)

返回值

  • (Function)

示例

const linear = cubicBezier(0, 0, 1, 1)
linear(0.1)
// => 0.1

ease

ease(x)

等同于cubicBezier(0.25, 0.1, 0.25, 1)

起始版本

0.2.0

参数

  • x (number)

返回值

  • (number)

easeIn

easeIn(x)

等同于cubicBezier(0.42, 0, 1, 1)

起始版本

0.2.0

参数

  • x (number)

返回值

  • (number)

easeInOut

easeInOut(x)

等同于cubicBezier(0.42, 0, 0.58, 1)

起始版本

0.2.0

参数

  • x (number)

返回值

  • (number)

easeOut

easeOut(x)

等同于cubicBezier(0, 0, 0.58, 1)

起始版本

0.2.0

参数

  • x (number)

返回值

  • (number)

linear

linear(x)

等同于cubicBezier(0, 0, 1, 1)

起始版本

0.2.0

参数

  • x (number)

返回值

  • (number)

示例

linear(0.1)
// => 0.1

emitter

你可以使用micell.emitter.create()创建一个Emitter实例对象,每一个 Emitter 实例对象都有下面的方法:

  • emit
  • getListeners
  • off
  • on
  • once

micell.emitter如同一个全局的 Emitter 实例对象,也具有上面的方法,即下面的函数实际上是调用的一个全局 Emitter 实例对象对应的方法。

  • micell.emitter.emit
  • micell.emitter.getListeners
  • micell.emitter.off
  • micell.emitter.on
  • micell.emitter.once

Emitter

new Emitter()

Emitter 构造函数,不过推荐使用create()方法创建 Emitter 实例。

起始版本

0.5.0

返回值

  • (Emitter)

create

create()

创建一个 Emitter 实例。

起始版本

0.5.0

返回值

  • (Emitter)

示例

const emitter = create()
emitter.on('foo', () => console.log('foo'))
emitter.emit('foo')
// => 'foo'

emit

emit(type, [arg1], [arg2], ...)

起始版本

0.5.0

参数

  • type (string)
  • [argN] (any)
micell.emitter.on('foo', (...args) => console.log(args))
micell.emitter.emit('foo', 1, 2, 3)
// => [1, 2, 3]

getListeners

getListeners(type)

获取事件type的所有监听器函数或者所有事件的所有监听器函数。

起始版本

0.5.0

参数

  • [type (string)]

返回值

  • (Array<Listener>)

示例

micell.emitter.on('foo', () => console.log('foo 1'))
micell.emitter.on('bar', () => console.log('bar 1'))
micell.emitter.on('foo', () => console.log('foo 2'))

// 事件 'foo' 对应的所有监听器函数
micell.emitter.getListeners('foo')

// 所有事件的所有监听器函数
micell.emitter.getListeners()

off

off(type, listener)
  • 如果参数为空,则所有事件的所有监听器函数都被移除。
  • 如果只传入了type参数,则type事件对应的所有监听器函数都被移除。
  • 如果typelistener参数都传入了,则type事件对应的所有listener监听器函数会被移除。

起始版本

0.5.0

参数

  • [type (string)]
  • [listener (function)]

示例

const fn1 = () => console.log(1)
const fn2 = () => console.log(2)

micell.emitter.on('foo', fn1)
micell.emitter.on('bar', fn1)
micell.emitter.on('foo', fn2)

micell.emitter.off('foo', fn1)
micell.emitter.off('foo')
micell.emitter.off()

on

on(type, listener)

绑定一个监听器函数listener

起始版本

0.5.0

参数

  • [type (string)]
  • [listener (function)]

once

once(type, listener)

on方法一样,绑定一个监听器函数listener,但是监听器函数只会被执行一次。

参数

  • [type (string)]
  • [listener (function)]

lang

isArray

isArray(value)

判断一个值是否是数组类型。

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isArray([]);
// => true

isBigInt

isBigInt(value)

判断一个值是否是 BigInt 类型。

起始版本

0.8.0

参数

  • value (any)

返回值

  • (boolean)

示例

isBigInt(BigInt(1));
// => true

isBoolean

isBoolean(value)

判断一个值是否是布尔类型。

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isBoolean(true);
// => true

isDate

isDate(value)

判断一个值是否是 Date 对象。

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isDate([]);
// => true

isError

isError(value)

判断一个值是否是 Error 类型。

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isError(new Error('error message'));
// => true

isFunction

isFunction(value)

判断一个值是否是一个函数,包括生成器函数和异步函数。

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isFunction(function () {});
// => true

isFunction(function* () {});
// => true

isNil

isNil(value)

判断一个值是否是nullundefined

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isNil(null);
// => true
isNil(undefined);
// => true

isNull

isNull(value)

判断一个值是否是null

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isNull(null);
// => true

isNumber

isNumber(value)

判断一个值是否是数值类型。

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isNumber(1);
// => true

isObject

isObject(value)

判断一个值是否是一个对象类型。

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isObject({});
// => true
isObject(null);
// => false

isRegExp

isRegExp(value)

判断一个值是否是 RegExp 对象。

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isRegExp(/\s+/);
// => true

isString

isString(value)

判断一个值是否是字符串类型。

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isString('hello world');
// => true

isSymbol

isSymbol(value)

判断一个值是否是 Symbol 类型。

起始版本

0.8.0

参数

  • value (any)

返回值

  • (boolean)

示例

isSymbol(Symbol('foo'));
// => true

isUndefined

isUndefined(value)

判断一个值是否是undefined

起始版本

0.1.0

参数

  • value (any)

返回值

  • (boolean)

示例

isUndefined(void 0);
// => true

path

basename

basename(str)

返回一个路径字符串的最后一部分。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (string)

示例

basename('/foo/bar');
// => "bar"

dirname

dirname(str)

返回一个路口字符串的目录部分。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (string)

示例

dirname('/foo/bar');
// => "/foo"

extname

extname(str)

返回一个路径字符串的扩展名部分。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (string)

示例

extname('/foo/bar.txt');
// => ".txt"

join

join(...args)

拼接路径字符串,使用斜线/分隔。

起始版本

0.8.0

参数

  • args (string[])

返回值

  • (string)

示例

join()
// => ""
join('foo', 'bar')
// => "foo/bar"
join('foo/', '/bar')
// => "foo/bar"

qs

get

get(name)

获取查询字符串当中指定名称的值。

起始版本

0.1.0

参数

  • name (string)

返回值

  • (string|Array\<string\>)

示例

// location.search = '?hello=world'
getQuery('hello');
// => "world"


// location.search = '?fruits=apple&fruits=orange'
getQuery('fruits');
// => ["apple", "orange"]

parse

parse(search)

解析一个查询字符串。

起始版本

0.1.0

参数

  • search (string)

返回值

  • (Object)

stringify

stringify(query)

将对象序列化为查询字符串。

起始版本

0.1.0

参数

  • query (Object)

返回值

  • (string)

regex

isAscii

isAscii(str)

判断一个字符串是否只包含 ASCII 字符。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isAscii('hello world');
// => true

isDecimal

isDecimal(str)

判断一个字符串是否是一个小数记数法表示的数值。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isDecimal('1');
// => true
isDecimal('3.14');
// => true

isDigit

isDigit(str)

判断一个字符串是否只包含十进制数字(0-9)。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isDigit('0123');
// => true

isDomain

isDomain(str)

判断一个字符串是否是一个域名。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isDomain('example.com');
// => true
isDomain('https://example.com');
// => false

isEmail

isEmail(str)

判断一个字符串是否一个邮件地址。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isEmail('alexchao1990@gmail.com');
// => true

isEmail('alexchao1990+github@gmail.com');
// => true

isHexColor

isHexColor(str)

判断一个字符串是否是一个十六进制数字格式的颜色值。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isHexColor('#f50');
// => true

isHexColor('#ff5500');
// => true

isHexColor('#FF5500');
// => true

isHsl

isHsl(str)

判断一个字符串是否是一个 HSL 颜色值。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isHsl('hsl(100, 50%, 50%)');
// => true

isHsl('HSL(100, 50%, 50%)');
// => true

isHsla

isHsla(str)

判断一个字符串是否是一个 HSLA 颜色值。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isHsla('hsla(100, 50%, 50%, 0.5)');
// => true

isHsla('HSLA(100, 50%, 50%, 0.5)');
// => true

isInteger

isInteger(str)

isDigit相同,判断一个字符串是否只包含十进制数字。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isInteger('0123');
// => true

isIP

isIP(str)

判断一个字符串是否一个 IP(v4 或 v6)地址。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isIP('192.0.0.1');
// => true

isIP('2408:8100:2514:3f70:c98:15fe:9611:acdc');
// => true

isIPv4

isIPv4(str)

判断一个字符串是否是一个 IP v4 地址。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isIPv4('192.0.0.1');
// => true

isIPv6

isIPv6(str)

判断一个字符串是否是一个 IP v6 地址。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isIPv6('2408:8100:2514:3f70:c98:15fe:9611:acdc');
// => true

isQQ

isQQ(str)

判断一个字符串是否是一个 QQ 号。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isQQ('10000');
// => true

isRealNumber

isRealNumber(str)

判断一个字符串是否是一个实数。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isRealNumber('0.12');
// => true

isRealNumber('1.2e10');
// => true

isRealNumber('1.2e-10');
// => true

isRgb

isRgb(str)

判断一个字符串是否是一个 RGB 颜色值。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isRgb('rgb(255, 255, 255)');
// => true

isRgb('RGB(255, 255, 255)');
// => true

isRgba

isRgba(str)

判断一个字符串是否是个 RGBA 颜色值。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isRgb('rgba(255, 255, 255, 0.5)');
// => true

isRgb('RGBA(255, 255, 255, 0.5)');
// => true

string

countChars

countChars(str, [type])

计算一个字符串当中字符数量。

起始版本

0.1.0

参数

  • str (string)
  • [type = 0] (number):如果type0,则返回字符串的长度值(length)。如果type1,则一个全宽字符计数为 2,一个半宽字符计数为 1。如果type2,则一个全宽字符计数为 1,一个半宽字符计数为 0.5,但是最终结果会向上取整。

返回值

  • (number)

示例

countChars('hello你好')
// => 7
countChars('hello你好', 1)
// => 9
countChars('hello你好', 2)
// => 5

countLines

countLines(str)

计算字符串的行数(以\n为分隔符)。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (number)

示例

const str = `hello
world
1`;
countLines(str);
// => 3

escapeRegexp

escapeRegexp(str)

对正则表达式当中的特殊字符进行转义。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (string)

示例

escapeRegexp('a-z');
// => "a\-z"

firstChar

firstChar(str)

返回一个字符串的首个字符。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (string)

示例

firstChar('hello');
// => "h"

isValidJSON

isValidJSON(str)

判断一个字符串是否是一个合法的 JSON 字符串。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (boolean)

示例

isValidJSON('{"name": "Alex Chao"}');
// => true

isValidJSON('""');
// => true

lastChar

lastChar(str)

返回一个字符串的最后一个字符。

起始版本

0.1.0

参数

  • str (string)

返回值

  • (string)

示例

lastChar('hello');
// => "o"

truncate

truncate([str = ''], [options = {}])

返回一个裁剪之后的字符串,并可指定结尾字符串。

起始版本

0.1.0

参数

  • [str = ""] (string):被裁剪的字符串。
  • [options = {}] (Object):配置对象
    • [length] (number):允许的最大字符串长度,默认为str长度。
    • [omission = "..."] (string):结尾字符串。
    • [countType = 0] (number):如何对半宽与全宽字符计数。
      • 0:每个字符长度都算做 1。
      • 1:半宽长度算作 1,全宽字符长度算作 2。
      • 2:两个半宽字符长度算作 1,不足按 1 算,全宽字符长度算作 1。

返回值

  • (string)

示例

const str = 'hello, 你好,world!世界!';
truncate(str);
truncate(str, { length: 10 });
truncate(str, { omission: '***' });
truncate(str, { length: 10, countType: 1 });

ua

isAndroid

isAndroid()

判断运行环境是否是安卓。

起始版本

0.1.0

返回值

  • (boolean)

isIOS

isIOS()

判断运行环境是否是 iOS。

起始版本

0.1.0

返回值

  • (boolean)

isIPad

isIPad()

判断运行环境是否是 iPad。

起始版本

0.1.0

返回值

  • (boolean)

isIPhone

isIPhone()

判断运行环境是否是 iPhone。

起始版本

0.1.0

返回值

  • (boolean)

isLinux

isLinux()

判断运行环境是否是 Linux。

起始版本

0.1.0

返回值

  • (boolean)

isMacOS

isMacOS()

判断运行环境是否是 macOS。

起始版本

0.1.0

返回值

  • (boolean)

isMobile

isMobile()

判断运行环境是否是移动端。

起始版本

0.1.0

返回值

  • (boolean)

isTablet

isTablet()

判断运行环境是否是平板。

起始版本

0.1.0

返回值

  • (boolean)

isWechat

isWechat()

判断运行环境是否是微信。

起始版本

0.1.0

返回值

  • (boolean)

isWindows

isWindows()

判断运行环境是否是 Windows。

起始版本

0.1.0

返回值

  • (boolean)

url

isAbsolute

isAbsolute(url)

判断url是否是一个绝对 URL。

起始版本

0.6.0

参数

  • url (string)

返回值

  • (boolean)

示例

isAbsolute('example.com')
// => false
isAbsolute('https://example.com')
// => true

join

join(...args)

拼接并正规化 URL 子字符串。

起始版本

0.8.0

参数

  • args (string[])

返回值

  • (string)

示例

join('https://example.com', 'foo', 'bar')
// => 'https://example.com/foo/bar'
join('https://example.com', 'foo', 'bar/')
// => 'https://example.com/foo/bar/'
join('https://example.com', 'foo', 'bar', '?hello=world')
// => 'https://example.com/foo/bar?hello=world'

parse

parse(url)

起始版本

0.4.0

参数

  • url (string):被解析的 url。

返回值

  • (Object)

示例

parse('http://admin:123456@example.com:8080/path-to-somewhere?foo=1&lang=js&lang=css#title')
// =>
// {
//   hash: '#title',
//   host: 'example.com:8080',
//   hostname: 'example.com',
//   href: 'http://admin:123456@example.com:8080/path-to-somewhere?foo=1&lang=js&lang=css#title',
//   origin: 'http://example.com:8080',
//   password: '123456',
//   pathname: '/path-to-somewhere',
//   port: '8080',
//   protocol: 'http',
//   query: {
//     foo: '1',
//     lang: ['js', 'css']
//   },
//   search: '?foo=1&lang=js&lang=css',
//   username: 'admin'
// }

stringify

stringify(urlParts)

起始版本

0.4.0

参数

  • urlParts (Object):URL 配置对象。

返回值

  • (string)

示例

stringify({
  protocol: 'http',
  host: 'example.com',
  pathname: '/path',
  query: {
    foo: '1',
    lang: ['js', 'css']
  }
})
// => 'http://example.com/path?foo=1&lang=js&lang=css'

ajax

ajax(url, [options])

发送一个 AJAX 请求。

起始版本

0.1.0

参数

  • url (string):请求 URL。
  • [options] (Object):配置对象。
    • [async = true] (boolean):是否为异步请求。
    • [beforeSend] (Function):发送请求之前的回调,如果返回false,则不会发送请求。
    • [data = null] (string|Object):发送的数据。
    • [headers = null] (Object):请求头部。
    • [method = "get"] (string):请求方法。
    • [responseType = "json"] (string):如何解析响应值。
    • [timeout = 0] (number):请求超时设置。

返回值

  • (Promise) j

classNames

classNames(...args)

根据任意数量的参数生成一个元素的className值,和 JedWatson/classnames (opens new window) 相同。

起始版本

0.10.0

参数

  • [args] (any[]):见下面示例。

返回值

  • (string)

示例

classNames('foo', 'bar'); // => 'foo bar'
classNames('foo', { bar: true }); // => 'foo bar'
classNames({ 'foo-bar': true }); // => 'foo-bar'
classNames({ 'foo-bar': false }); // => ''
classNames({ foo: true }, { bar: true }); // => 'foo bar'
classNames({ foo: true, bar: true }); // => 'foo bar'

// 接受各种类型参数
classNames('foo', { bar: true, duck: false }, 'baz', { quux: true }); // => 'foo bar baz quux'

// 假值(falsy)和非字符串/对象/数组值会被忽略
classNames(null, false, 'bar', undefined, 0, 1, true, { baz: null }, ''); // => 'bar'
classNames(null, false, 'bar', undefined, 0, 1, { baz: null }, ''); // => 'bar 1'

// 数组会根据上面规则展开
const arr = ['b', { c: true, d: false }];
classNames('a', arr); // => 'a b c'

css

css(el, [prop])

获取一个元素所有或指定属性的值。

起始版本

0.1.0

参数

  • el (Element|string):一个元素对象或者 CSS 选择器。
  • [prop] (string):CSS 属性名。

返回值

  • (string | Object)

示例

const el = document.getElementById('el');

// 获取所有属性值
css(el);
// => CSSStyleDeclaration { ... }

// 传入一个 CSS 选择器
css('#el');
// => CSSStyleDeclaration { ... }

// 获取指定属性的值
css('#el', 'width');
// => '100px'

delay

delay([duration])

返回一个 Promise,持续duration时间之后 resolve。

起始版本

0.1.0

参数

  • [duration = 0] (number):持续时间。

返回值

  • (Promise)

download

download(file, [fileName])

下载一个 URL 所定位的文件或Blob (opens new window)对象或File (opens new window)对象。该函数来自于eligrey/FileSaver.js (opens new window)

参数

  • file (string | Blob | File):一个 URL 字符串或Blob对象或File对象。
  • [fileName] (string):优先使用该参数作为文件名,其次,如果file参数是File类型,则使用filename属性,最后使用'download'字符串。

示例

// 下载 url 字符串所定位的文件
download('https://micell.org/logo.svg', 'micell-logo.svg')

// 下载 Blob 对象
const blob = new Blob(['Hello, world!'], { type: 'text/plain;charset=utf-8' })
download(blob, 'hello-world.txt')

jsonp

jsonp(url, [options])

起始版本

0.1.0

参数

  • url (string):请求数据的 URL。
  • [options] (Object):配置对象。
    • [callback] (string):数据请求成功或失败的回调函数。
    • [responseType = "json"] (string):对返回的数据如何处理。
    • [timeout = 0] (number):请求超时配置,默认0,表示设置请求超时。

返回值

  • (Promise)

md5

md5(input)

起始版本

0.4.0

参数

  • input (string | number[] | Uint8Array)

返回值

  • (string)

示例

md5('hello 你好')
// => '429f2c0b03ebc9911455cbec2a09bc6f'

noop

该函数为一个空函数,不接受任何参数,不返回任何值。

起始版本

0.1.0

numberFormat

numberFormat(number, [digits], [dot], [sep])

格式化一个数值。

起始版本

0.1.0

参数

  • number (number):被格式化的数值。
  • [digits = -1] (number):保留的小数位数,如果为-1则表示保留所有小数位数,如果该值> -1,则保留的最后一位为四舍五入所得。
  • [dot = "."] (string):整数与小数部分的分隔符。
  • [sep = ","] (string):千分位分隔符。

返回值

  • (string)

示例

numberFormat(3.1415);
// => '3.1415'
numberFormat(3.1415, 3);
// => '3.142'

raf

raf(callback)

如果浏览器支持 requestAnimationFrame (opens new window),则和其一样。否则,使用setTimeout来模拟。

起始版本

0.2.0

参数

  • callback (Function):在下一次重绘(repaint)之前调用的函数。一个由performance.now()返回的类似 DOMHighResTimeStamp (opens new window) 的时间值将会作为第一个参数传入。

返回值

  • (number):用于取消下一次回调的定时器 ID。

示例

raf(time => console.log(time))
// => 120.123

const timerId = raf(() => console.log('never happen'))
raf.cancel(timerId)

randomNumbers

randomNumbers(start, end, length)

返回一个随机整数数组,每个整数都大于或等于start,并且小于或等于end。数组当中每个元素互补相等。

起始版本

0.8.0

参数

  • start (number):最小整数。
  • end (number):最大整数。
  • length (number):整数的数量。

返回值

  • (numbers[])

示例

randomNumbers(1, 10, 5)
// => [9, 4, 1, 5, 7]

randomString

randomString([len], [chars])

生成一个随机字符串,可以指定字符串的长度和组成字符串的字符集。

起始版本

0.1.0

参数

  • [len = 32] (number):随机字符串长度。
  • [chars] (string):组成字符串的字符集,默认为英文大写字母、小写字母及十进制数字,即 A-Za-z0-9。

返回值

  • (string)

示例

randomString();

// 生成一个长度为 8 的随机字符串。
randomString(8);

// 生成一串随机数字。
randomString(undefined, '0123456789');

uuid

uuid()

生成一个基于随机数字的 UUID,算法见 rfc4122 (opens new window)

起始版本

0.1.0

返回值

  • (string)

示例

uuid();
// => 'fedb3747-4208-475d-b473-e51b583cddaf'
上次更新: 12/29/2020, 4:34:24 PM