Global

Methods

accAdd(arg1, arg2) → {number}

Source:

加法函数,用来得到精确的加法结果
javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。

Example
accAdd(0.1, 0.2)
// => 0.3
Parameters:
Name Type Description
arg1 number
arg2 number
Returns:

arg1加上arg2的精确结果

Type
number

accDiv(arg1, arg2) → {number}

Source:

除法函数,用来得到精确的除法结果
javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。

Example
accDiv(0.2, 0.3)
// => 0.6666666666666666
Parameters:
Name Type Description
arg1 number
arg2 number
Returns:

arg1除以arg2的精确结果

Type
number

accMul(arg1, arg2) → {number}

Source:

乘法函数,用来得到精确的乘法结果
javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。

Example
accMul(0.222, 0.3333)
// => 0.0739926
Parameters:
Name Type Description
arg1 number
arg2 number
Returns:

arg1乘以arg2的精确结果

Type
number

accSub(arg1, arg2) → {number}

Source:

减法函数,用来得到精确的减法结果
javascript的减法结果会有误差,在两个浮点数相减的时候会比较明显。这个函数返回较为精确的减法结果。

Example
accSub(0.3, 0.2)
// => 0.1
Parameters:
Name Type Description
arg1 number
arg2 number
Returns:

arg1减去arg2的精确结果

Type
number

addChineseUnit(number, decimalDigit) → {*}

Source:

为数字加上单位:万或亿

Example
addChineseUnit(1000.01)
// => 1000.01

addChineseUnit(10000)
// => 1万

addChineseUnit(99000)
// => 9.9万

addChineseUnit(566000)
// => 56.6万

addChineseUnit(5660000)
// => 566万

addChineseUnit(44440000)
// => 4444万

addChineseUnit(11111000)
// => 1111.1万

addChineseUnit(444400000)
// => 4.44亿

addChineseUnit(400000000000000000000000)
// => 3999.99万亿亿

addChineseUnit(4000000000000000000000000)
// => 4亿亿亿
Parameters:
Name Type Description
number number

输入数字.

decimalDigit number

返回的小数点后最多的位数,默认为 2

Returns:

加上单位后的数字(计算结果有时会有精度问题)

Type
*

addClass(el, cls)

Source:
Since:
  • 1.1.5

dom操作,元素添加某个class

Example
<div class="box flex"></div>
addClass(document.querySelector('.box'), 'flex1');
// => <div class="box flex flex1"></div>
Parameters:
Name Type Description
el

HTML元素

cls

css类名

anagrams(str) → {*}

Source:
Since:
  • 1.2.1

Anagrams of string(带有重复项) 使用递归。对于给定字符串中的每个字母,为字母创建字谜。使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基本情况是字符串长度等于2或1。

Example
anagrams('abc');
// => ['abc','acb','bac','bca','cab','cba']
Parameters:
Name Type Description
str
Returns:
Type
*

appendStockSuffix(stock) → {string}

Source:

识别股票代码添加市场后缀

Example
appendStockSuffix('600570')
// => '600570.SS'
Parameters:
Name Type Description
stock string

股票代码

Returns:
Type
string

bytesToSize(bytes) → {*}

Source:

将字节转换成友好格式,如Bytes,KB,MB

Example
bytesToSize(10000)
// => 9.8 KB
Parameters:
Name Type Description
bytes string
Returns:
Type
*

capitalizeEveryWord(str) → {string|*|void|XML}

Source:
Since:
  • 1.2.1

大写每个单词的首字母

Example
capitalizeEveryWord('hello world!');
// => 'Hello World!'
Parameters:
Name Type Description
str
Returns:
Type
string | * | void | XML

changeMoneyToChinese(n) → {string}

Source:
Since:
  • 1.2.5

数字金额大写转换

Example
changeMoneyToChinese(100111);
=> "壹拾万零壹佰壹拾壹元整"

changeMoneyToChinese(7.52);
=> "柒元伍角贰分"

changeMoneyToChinese(951434677682.00);
=> "玖仟伍佰壹拾肆亿叁仟肆佰陆拾柒万柒仟陆佰捌拾贰元整"
Parameters:
Name Type Description
n
Returns:
Type
string

combineURLs(baseURL, relativeURL) → {string}

Source:

Creates a new URL by combining the specified URLs

Parameters:
Name Type Description
baseURL string

The base URL

relativeURL string

The relative URL

Returns:

The combined URL

Type
string

compareVersion(v1, v2) → {number}

Source:
Example
compareVersion('10.1.8', '10.0.4');
// => 1
compareVersion('10.0.1', '10.0.1');
// => 0
compareVersion('10.1.1', '10.2.2');
// => -1
Parameters:
Name Type Description
v1

老版本

v2

新版本

Returns:

v1 > v2 => 1, v1 < v2 => -1, v1 === v2 => 0

Type
number

dataURLToBlob(dataURL) → {*}

Source:

base64转blob

Example
const URI = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48ZGVmcz48c3R5bGUvPjwvZGVmcz48cGF0aCBkPSJNOTU5LjQzNiAyNDMuNUwzNzcuNDEzIDg3MC4yNyA2NC4wMiA0NjcuMzQ0bDExNC43MjctOTcuOTMgMTk4LjY2NiAyMDcuMDYgNDkyLjQ4Mi00MjIuNTEgODkuNTQgODkuNTM3em0wIDAiIGZpbGw9IiM0M2E5ZjEiLz48L3N2Zz4=';

dataURLToBlob(URI);
// => Blob {size: 248, type: "image/svg+xml"}
Parameters:
Name Type Description
dataURL string
Returns:
Type
*

deepClone(obj) → {*}

Source:

深层克隆对象

Example
const a = { foo: 'bar', obj: { a: 1, b: 2 } };
const b = deepClone(a);
// => a !== b, a.obj !== b.obj
Parameters:
Name Type Description
obj
Returns:
Type
*

deepMapKeys(obj, fn) → {Object}

Source:

深层映射对象键

Example
const obj = {
  foo: '1',
  nested: {
    child: {
      withArray: [
        {
          grandChild: ['hello']
        }
      ]
    }
  }
};

 const upperKeysObj = deepMapKeys(obj, key => key.toUpperCase());

 // =>
 {
  "FOO":"1",
  "NESTED":{
    "CHILD":{
      "WITHARRAY":[
        {
          "GRANDCHILD":[ 'hello' ]
        }
      ]
    }
  }
}
Parameters:
Name Type Description
obj
fn
Returns:
Type
Object

dig(obj, target) → {any}

Source:

基于给定的键返回嵌套JSON对象中的目标值

https://30secondsofcode.org/object#dig

Example
const data = {
 level1: {
   level2: {
     level3: 'some data'
   }
 }
};
dig(data, 'level3');
// => 'some data'
dig(data, 'level4');
// => undefined
Parameters:
Name Type Description
obj
target
Returns:
Type
any

dynamicLoadScript(src, callback)

Source:

动态加载 script

Example
dynamicLoadScript('https://cdn.jsdelivr.net/npm/tinymce-all-in-one@4.9.3/tinymce.min.js', () => {
  console.log('加载成功');
})
// => 加载成功
Parameters:
Name Type Description
src string
callback function

encrypt(params)

Source:

加密算法 1.所有入参加入集合M,参数名做key, 值做value 2.提供的密钥1(字段名appid)与密钥2(字段名secret)两项,以及当前时间戳(字段名time)也加入集合M, 3.将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序) 4.集合M所有值拼接成字符串,转化成UTF-8编码格式的字节数组, 最后需要取MD5码(signature摘要值)

Example
const params = { mobile: '15858264900', nickname: 'liwb', appkey: 'ertfgdf345435568123454rtoiko5=' };

md5(encrypt(params).toUpperCase());
// => md5('APPKEY=ERTFGDF34543545=&MOBILE=15858264903&NICKNAME=LIWB')
Parameters:
Name Type Description
params object

entitiestoUtf16(str)

Source:

实体字符转utf16字符串

Parameters:
Name Type Description
str *

待解析的字符串

equals(a, b) → {*}

Source:

两个值之间的深入比较,以确定它们是否相等

Example
equals({ a: [2, { e: 3 }], b: [4], c: 'foo' }, { a: [2, { e: 3 }], b: [4], c: 'foo' });

// => true
Parameters:
Name Type Description
a Object
b Object
Returns:
Type
*

exportXls(data, name, callBack)

Source:

删除对象里面value值为null的键值对

Parameters:
Name Type Description
data *

接口返回的blob数据

name *

excel名称

callBack *

导出成功/失败回调 回调返回{type:fail/success} fail情况下 返回{ type: "fail", code, msg }

extend(to, from) → {*}

Source:

将from所有的键值对都添加到to上面去,返回to

Example
const from = {mobile: '15858264903', nickname: 'liwb'};
const to = {nickname: 'cklwb'};

extend(to, from);
// => {nickname: "liwb", mobile: "15858264903"}
Parameters:
Name Type Description
to Object
from Object
Returns:
Type
*

fibonacci(num) → {*}

Source:
Since:
  • 1.2.1

斐波那契数组生成器 创建一个特定长度的空数组,初始化前两个值(0和1)。使用Array.reduce()向数组中添加值,后面的一个数等于前面两个数相加之和(前两个除外)。

Example
fibonacci(5);
// => [0,1,1,2,3]
Parameters:
Name Type Description
num
Returns:
Type
*

formatBankCard(val) → {*}

Source:

格式化银行卡
用户在输入银行卡号时,需要以4位4位的形式显示,就是每隔4位加个空格,方便用户校对输入的银行卡是否正确
**注:**一般数据库里面存的都是不带格式的原始数据,所以提交的时候记得过滤下空格再提交哦。毕竟格式化这种算是表现层,前端展示的时候处理下就好,业务逻辑什么用到的卡号可不是格式化后的呢。
还原val.replace(/\s/g, '');

Example
formatBankCard('6225365271562822');
// => 6225 3652 7156 2822
Parameters:
Name Type Description
val string
Returns:
Type
*

formatDate(date, fmt) → {string}

Source:

Date 转化为指定格式的String
月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q)可以用 1-2 个占位符
年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)

Example
formatDate(Date.now(), 'yyyy-MM-dd hh:mm:ss.S');
// => 2006-07-02 08:09:04.423

formatDate(Date.now(), 'yyyy-MM-dd E HH:mm:ss');
// => 2009-03-10 二 20:09:04

formatDate(Date.now(), 'yyyy-MM-dd EE hh:mm:ss');
// => 2009-03-10 周二 08:09:04

formatDate(Date.now(), 'yyyy-MM-dd EEE hh:mm:ss');
// => 2009-03-10 星期二 08:09:04

formatDate(Date.now(), 'yyyy-M-d h:m:s.S')
// => 2006-7-2 8:9:4.18
Parameters:
Name Type Description
date string | number

string支持形式:20160126 12:00:00,2016-01-26 12:00:00,2016.01.26 12:00:00,20160126,2016-01-26 12:00:00.0

fmt string
Returns:
Type
string

formatDateToTimeStamp(time) → {number}

Source:

获取指定时间unix时间戳

Example
formatDateToTimeStamp('20160126 12:00:00');
// => 1453780800000

formatDateToTimeStamp('2016-01-26 12:00:00');
// => 1453780800000

formatDateToTimeStamp('2016.01.26 12:00:00');
// => 1453780800000

formatDateToTimeStamp('20160126');
// => 1453737600000

formatDateToTimeStamp('2016-01-26 12:00:00.0');
// => 1453780800000
Parameters:
Name Type Description
time string
Returns:
Type
number

formatMoney(val, symbol) → {string|*|XML|void}

Source:

用符号(默认为逗号)格式化金钱

Example
formatMoney('1234567890');
// => 1,234,567,890
Parameters:
Name Type Description
val string
symbol string

默认,

Returns:
Type
string | * | XML | void

formatNumber(number, decimals, decPoint, thousandsSep, roundTag) → {XML|void|*|string}

Source:
Since:
  • 1.0.7

格式化数字、金额、千分位、保留几位小数、舍入舍去

Example
formatNumber(2, 2, '.', ',');
// => 2.00
Parameters:
Name Type Description
number

要格式化的数字

decimals

保留几位小数

decPoint

小数点符号

thousandsSep

千分位符号

roundTag

舍入参数,默认 'ceil' 向上取,'floor'向下取,'round' 四舍五入

Returns:
Type
XML | void | * | string

formatPhone(phone, symbol) → {string|*|XML|void}

Source:

手机号码中间部分替换成指定符号

Example
formatPhone('15858264903');
// => 158****4903
Parameters:
Name Type Description
phone string
symbol string

默认为*

Returns:
Type
string | * | XML | void

formatTimeAgo(ms) → {*}

Source:

将时间转化为几天前,几小时前,几分钟前

Example
formatTimeAgo(1505232000000);
// => 1天前
Parameters:
Name Type Description
ms number
Returns:
Type
*

generateGUID() → {string}

Source:

生成guid

Example
generateGUID();
// => 1e508ed6-6177-498d-c2a3-467f546db6ab
Returns:
Type
string

get(from, selectors) → {Array.<string>}

Source:

从对象中检索给定选择器指示的一组属性

https://30secondsofcode.org/object#get

Example
const obj = { selector: { to: { val: 'val to select' } }, target: [1, 2, { a: 'test' }] };
get(obj, 'selector.to.val', 'target[0]', 'target[2].a');
// =>  ['val to select', 1, 'test']
Parameters:
Name Type Description
from
selectors
Returns:
Type
Array.<string>

getBrowser() → {Object}

Source:

获取浏览器的类型和版本号

Example
getBrowser();
// => {type: "chrome", version: "60.0.3112.101"}
Returns:
Type
Object

getDayOfYear(time) → {number}

Source:
Since:
  • 1.2.4

获取某个日期是当年中的第几天

Example
getDayOfYear('2014-01-10')
=> 10
Parameters:
Name Type Description
time
Returns:
Type
number

getDayOfYearWeek(time) → {number}

Source:
Since:
  • 1.2.4

获取某个日期在这一年的第几周

Example
getDayOfYearWeek('2014-01-10')
=> 2
Parameters:
Name Type Description
time
Returns:
Type
number

getDays(时间, 长度, 方向:) → {Array}

Source:

返回指定长度的天数集合 摘自:https://segmentfault.com/a/1190000013041329

Example
getDays('2018-1-29', 6, 1)
// => ["2018-1-26", "2018-1-27", "2018-1-28", "2018-1-29", "2018-1-30", "2018-1-31", "2018-2-1"]
Parameters:
Name Type Description
时间 time
长度 len
方向: direction

1: 前几天; 2: 后几天; 3:前后几天 默认 3

Returns:

数组

Type
Array

getDevice() → {Object}

Source:

获取移动设备信息,如是否是iOS,android等

Example
getDevice();
// => {"androidChrome":false,"ipad":false,"iphone":true,"android":false,"ios":true,"os":"ios","osVersion":"9.1","webView":null}
Returns:
Type
Object

getDiffDay(startDay, endDay) → {number}

Source:
Since:
  • 1.0.7

得到两个时间的时间差(返回天数)

Example
getDiffDay(1501516800000, 1504195200000);
// => 31
Parameters:
Name Type Description
startDay number

开始时间戳

endDay number

结束时间戳

Returns:
Type
number

getImgBase64(url) → {Promise}

Source:

获取图片的base64 url

Parameters:
Name Type Description
url string

图片url

Returns:

图片base64信息

Type
Promise

getIn(p, o) → {*}

Source:

主动防御 对于我们操作的数据,尤其是由 API 接口返回的,时常会有一个很复杂的深层嵌套的数据结构。为了代码的健壮性,很多时候需要对每一层访问都作空值判断,就像这样: props.user && props.user.posts && props.user.posts[0] && props.user.posts[0].comments && props.user.posts[0].comments[0] 代码看起来相当不美观,因此提供了一个非常简洁明了的原生的方式。

Example
var props = {
 user: {
   post: [{
     comments: 'test'
   }]
 }
};
getIn(['user', 'post', 0, 'comments'], props);
// => test
Parameters:
Name Type Description
p

属性列表

o

对象

Returns:

如果正常访问到,则返回对应的值,否则返回 null。

Type
*

getLocationHrefParam(name) → {*}

Source:

获取location.href参数

Example
window.location.href = 'http://www.baidu.com/?a=1&b=2';

getLocationHrefParam('a');
// => 1
Parameters:
Name Type Description
name string
Returns:
Type
*

getLocationSearchParam(name) → {*}

Source:

获取location.search的参数

Example
window.location.href = 'http://www.baidu.com/?a=1&b=2';

getLocationSearchParam('a');
// => 1
Parameters:
Name Type Description
name string
Returns:
Type
*

getMonthOfDay(时间) → {number}

Source:

获取某月有多少天 摘自:https://segmentfault.com/a/1190000013041329

Example
getMonthOfDay('2018-1-29')
// => 31
Parameters:
Name Type Description
时间 time
Returns:

天数

Type
number

getMonths(时间, 长度, 方向:) → {Array}

Source:

返回指定长度的月份集合 摘自:https://segmentfault.com/a/1190000013041329

Example
getMonths('2018-1-29', 6, 1)
// => ["2018-1", "2017-12", "2017-11", "2017-10", "2017-9", "2017-8", "2017-7"]
Parameters:
Name Type Description
时间 time
长度 len
方向: direction

1: 前几个月; 2: 后几个月; 3:前后几个月 默认 3

Returns:

数组

Type
Array

getPixelRatio() → {number}

Source:

获取设备像素比

Example
// window.navigator.appVersion(5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1)
getPixelRatio();
// => 2
Returns:
Type
number

getRandomInt(min, max) → {*}

Source:

获取max与min之间的随机数

Example
getRandomInt(1, 9);
// => 2
Parameters:
Name Type Description
min number
max number
Returns:
Type
*

getScrollPos(el) → {Object}

Source:
Since:
  • 1.2.1

获取滚动位置 如果已定义,请使用pageXOffset和pageYOffset,否则使用scrollLeft和scrollTop,可以省略el来使用window的默认值。

Example
getScrollPos();
// => {x: 0, y: 200}
Parameters:
Name Type Description
el
Returns:
Type
Object

getUrlNames(name) → {*}

Source:

根据参数获取对应的值

Example
// window.location.href: 'http://www.baidu.com/?a=1&b=2&state=broker:aaaa1111ccc;tenant:asdfasdf;view_tag:2;
getUrlNames('state');
// => {broker: "aaaa1111ccc", tenant: "asdfasdf", view_tag: "2"}
Parameters:
Name Type Description
name string
Returns:
Type
*

getURLParameters(url) → {Object}

Source:

获取网址参数

Example
getURLParameters('http://url.com/page?name=Adam&surname=Smith');
=> // {name: 'Adam', surname: 'Smith'}
Parameters:
Name Type Description
url string
Returns:

返回包含当前URL参数的对象。

Type
Object

getYearOfDay(time) → {number}

Source:
Since:
  • 1.2.4

获取某年有多少天

Example
getYearOfDay('2014')
=> 365
Parameters:
Name Type Description
time
Returns:
Type
number

handleEmoji(str, type) → {string}

Source:

处理emoji,用于把用utf16编码的字符转换成实体字符

Example
handleEmoji("😃", "encode");
// => "&#128515;"
handleEmoji("&#128522;", "decode");
// => "😊"
Parameters:
Name Type Description
str string

需要编译/解析的字符串

type string

encode 编译 decode 转义

Returns:

编译/解析后的字符串

Type
string

hasClass(el, cls) → {boolean}

Source:
Since:
  • 1.1.5

Dom 操作,元素是包含某个 class

Example
<div class="box flex"></div>
hasClass(document.querySelector('.box'), 'flex');
// => true
Parameters:
Name Type Description
el

HTML元素

cls

css类名

Returns:
Type
boolean

hexToRgb(hex) → {*}

Source:
Since:
  • 1.2.0

Hex 转换为 Rgb

Example
hexToRgb("#0033ff").g;
// => 51
Parameters:
Name Type Description
hex
Returns:
Type
*

htmlDecode(str) → {string}

Source:

html字符解码

Example
htmlDecode('&lt;script&gt;');
// => <script>
Parameters:
Name Type Description
str string
Returns:
Type
string

htmlEncode(str) → {string}

Source:

html字符编码

Example
htmlEncode('<script>');
// => &lt;script&gt;
Parameters:
Name Type Description
str string
Returns:
Type
string

inAlipay() → {boolean}

Source:

是否是支付宝内核

Example
inAlipay();
// => false
Returns:
Type
boolean

inQQBrowser() → {boolean}

Source:

是否是QQ浏览器内核

Example
inQQBrowser();
// => false
Returns:
Type
boolean

insertAtCaret(dom对象, str)

Source:

将文本插入到文本区域的光标位置
_应用场景:_如在评论框里,在光标位置里插入emoji等

Example
<textarea name="textarea" rows="10" cols="50">你好世界~</textarea>

const editText = document.querySelector('#editText');

insertText(editText, 'hello world');
// =>
Parameters:
Name Type Description
dom对象 object
str string

inUCBrowser() → {boolean}

Source:

是否是UC浏览器内核

Example
inUCBrowser();
// => false
Returns:
Type
boolean

invertKeyValues(obj) → {Object}

Source:

反转对象的键值对 而不会改变它。使用 Object.keys() 和 Array.reduce() 来反转对象的键值对。

Example
invertKeyValues({ name: 'John', age: 20 });
// => { 20: 'age', John: 'name' }
Parameters:
Name Type Description
obj
Returns:
Type
Object

inWeibo() → {boolean}

Source:

是否是微博内核

Example
inWeibo();
// => false
Returns:
Type
boolean

inWeixin() → {boolean}

Source:

是否是微信内核

Example
inWeixin();
// => false
Returns:
Type
boolean

isCardId(val) → {boolean}

Source:

是否为有效的身份证号,支持1/2代(15位/18位数字)

Example
isCardId('411423198807127834');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isChinese(str) → {boolean}

Source:
Since:
  • 1.4.7

是否为中文

Example
isChinese('中文');
// => true
Parameters:
Name Type Description
str string
Returns:
Type
boolean

isDigit(val) → {boolean}

Source:

是否为数字

Example
isDigit('abc');
// => false
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isEmoji(value) → {boolean}

Source:

检查是否是emoji表情

Parameters:
Name Type Description
value *

正则校验变量

Returns:

正则校验结果 true: 是emoji表情 false: 不是emoji表情

Type
boolean

isEmpty(val) → {boolean}

Source:

是否为空 如果a值是空对象,集合,没有可枚举属性或任何不被视为集合的类型,则返回true。

https://30secondsofcode.org/type#isempty

Example
isEmpty([]);
// => true
isEmpty({});
// => true
isEmpty('');
// => true
isEmpty([1, 2]);
// => false
isEmpty({ a: 1, b: 2 });
// => false
isEmpty('text');
// => false
isEmpty(123);
// => true - type is not considered a collection
isEmpty(true);
// => true - type is not considered a collection
Parameters:
Name Type Description
val
Returns:
Type
boolean

isEmptyObject(val) → {boolean}

Source:

是否为空对象

Example
isEmptyObject({});
// => true
Parameters:
Name Type Description
val
Returns:
Type
boolean

isHTML(str) → {boolean}

Source:
Since:
  • 1.2.4

是否为 HTML 标签

Example
isHTML('<p>123</p>');
// => true
Parameters:
Name Type Description
str string
Returns:
Type
boolean

isLeapYear(val) → {boolean}

Source:

是否为闰年

Example
isLeapYear(2000);
// => true
Parameters:
Name Type Description
val number
Returns:
Type
boolean

isLetters(val) → {boolean}

Source:

是否为字母

Example
isLetters('1234');
// => false
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isLicenseNo(val) → {boolean}

Source:

是否为有效的车牌号码

1.常规车牌号:仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成。如:粤B12345;
2.武警车牌:允许前两位为大写英文字母,后面可录入七个字符,由大写英文字母和阿拉伯数字组成,其中第三位可录汉字也可录大写英文字母及阿拉伯数字,如:WJ01警0081、WJ0112345。
3.最后一个为汉字的车牌:允许以汉字开头,后面可录入六个字符,前五位字符,由大写英文字母和阿拉伯数字组成,而最后一个字符为汉字,汉字包括“挂”、“学”、“警”、“军”、“港”、“澳”。
如:粤Z1234港。 4.新军车牌:以两位为大写英文字母开头,后面以5位阿拉伯数字组成。如:BA12345。
5.黑龙江车牌存在08或38开头的情况。

Example
isLicenseNo('浙A12345');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isLightOS()

Source:

是否为 Light OS(容器)

Example
isLightOS();
// => true

isMobile(val) → {boolean}

Source:

是否为有效的手机号,中国手机号(宽松), 只要是13,14,15,16,17,18,19开头即可

Example
isMobile('15898745678');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isMobileLoose(val) → {boolean}

Source:

是否为有效的手机号,中国手机号(最宽松), 只要是1开头即可, 如果你的手机号是用来接收短信, 优先建议选择这一条

Example
isMobileLoose('008618311006933');
// => true

isMobileLoose('+8617888829981');
// => true

isMobileLoose('19119255642');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isMobileStrict(val) → {boolean}

Source:

是否为有效的手机号,中国手机号(严谨), 根据工信部2019年最新公布的手机号段

Example
isMobileStrict('008618311006933');
// => true

isMobileStrict('+8617888829981');
// => true

isMobileStrict('19119255642');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isNewEnergyLicenseNo(val) → {boolean}

Source:

是否为有效的新能源车牌号

Example
isNewEnergyLicenseNo('京AD92035');
// => true

isNewEnergyLicenseNo('甘G23459F');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isPhoneX() → {boolean}

Source:

判断 iPhone X Series 机型,刘海屏

Example
isPhoneX()
=> true
Returns:
Type
boolean

isSpecialChar(value) → {boolean}

Source:

检查是否为特殊字符

Parameters:
Name Type Description
value string

正则校验的变量

Returns:

正则校验结果 true: 是特殊字符 false: 不是特殊字符

Type
boolean

isUnifiedSocialCreditCode(val) → {boolean}

Source:

是否为有效的统一社会信用代码

Example
isUnifiedSocialCreditCode('91230184MA1BUFLT44');
// => true

isUnifiedSocialCreditCode('92371000MA3MXH0E3W');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidAShareCode(val) → {boolean}

Source:

是否为有效的A股代码

Example
isValidAShareCode('sz000858');
// => true

isValidAShareCode('SZ002136');
// => true

isValidAShareCode('SH600600');
// => true

isValidAShareCode('sh600600');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidBankNo(val) → {boolean}

Source:

是否为有效的银行卡号(10到30位, 覆盖对公/私账户, 参考微信支付

Example
isValidBankNo('6234567890');
// => true

isValidBankNo('6222026006705354217');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidBase64Format(val) → {boolean}

Source:

是否为有效的 base64格式

Example
isValidBase64Format('data:image/gif;base64,xxxx==')
=> true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidChineseName(val) → {boolean}

Source:

是否为有效的中文姓名

Example
isValidChineseName('葛二蛋');
// => true

isValidChineseName('凯文·杜兰特');
// => true

isValidChineseName('德克·维尔纳·诺维茨基');
// => true
Parameters:
Name Type Description
val
Returns:
Type
boolean

isValidChineseTelephone(val) → {boolean}

Source:

是否为有效的国内座机电话

Example
isTelephone('0571-4211236');
// => true

isTelephone('0341-86091234');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidDate(val) → {boolean}

Source:

是否为有效的日期格式
格式为 yyyy-mm-dd 或 yyyy-mm-dd HH:mm:ss

Example
isValidDate('2015-01-20');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidEd2kLinkLoose(val) → {boolean}

Source:

是否为有效的ed2k链接(宽松匹配)

Example
isValidEd2kLinkLoose('ed2k://|file|%E5%AF%84%E7%94%9F%E8%99%AB.PARASITE.2019.HD-1080p.X264.AAC-UUMp4(ED2000.COM).mp4|2501554832|C0B93E0879C6071CBED732C20CE577A3|h=5HTKZPQFYRKORN52I3M7GQ4QQCIHFIBV|/');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidEmail(val) → {boolean}

Source:

是否为有效的邮箱地址
名称允许汉字、字母、数字,域名只允许英文域名
中文如:杨元庆001Abc@lenovo.com.cn

Example
isValidEmail('123456@qq.com');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidHexadecimalColor(val) → {boolean}

Source:

是否为有效的16进制颜色

Example
isValidHexadecimalColor('#f00');
// => true

isValidHexadecimalColor('#fe9de8');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean
Source:

是否为有效的图片链接地址(图片格式可按需增删)

Example
isValidImageLink('https://www.abc.com/logo.png');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidIPV4(val) → {boolean}

Source:

是否为有效的IP v4

Example
isValidIPV4('172.16.0.0');
// => true

isValidIPV4('127.0.0.0');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidIPV6(val) → {boolean}

Source:

是否为有效的IP v6

Example
isValidIPV6('2031:0000:130f:0000:0000:09c0:876a:130b');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidMagnetLinkLoose(val) → {boolean}

Source:

是否为有效的磁力链接(宽松匹配)

Example
isValidMagnetLinkLoose('magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidMD5(val) → {boolean}

Source:

是否为有效的md5格式(32位)

Example
isValidMD5('21fe181c5bfc16306a6828c1f7b762e8');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidPassport(val) → {boolean}

Source:

是否为有效的护照(包含香港、澳门)

Example
isValidPassport('s28233515');
// => true

isValidPassport('141234567');
// => true

isValidPassport('159203084');
// => true

isValidPassport('MA1234567');
// => true

isValidPassport('K25345719');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidPassword(val, minLength) → {boolean}

Source:

是否为有效的密码强度,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符

Example
isValidPassword('Kd@curry666');
// => true
Parameters:
Name Type Description
val string
minLength number

最小位数

Returns:
Type
boolean

isValidQQ(val) → {boolean}

Source:

是否为有效的 qq

Example
isValidQQ('814563410');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidSemverVersion(val) → {boolean}

Source:

版本号格式必须为X.Y.Z

Example
isValidSemverVersion('16.3.10');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidSubnetMask(val) → {boolean}

Source:

是否为有效的子网掩码

Example
isValidSubnetMask('255.255.255.0');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidTelephone(val) → {boolean}

Source:

是否为有效的电话(座机)

Example
isTelephone('0571-4211236');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidTestScores(val) → {boolean}

Source:

是否为有效的考卷分数, 大于等于0, 小于等于150, 支持小数位出现5, 如145.5

Example
isValidTestScores('150');
// => true

isValidTestScores('149.5');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidThunder(val) → {boolean}

Source:

是否为有效的迅雷链接

Example
isValidThunder('thunder://QUEsICdtYWduZXQ6P3h0PXVybjpidGloOjBCQTE0RTUxRkUwNjU1RjE0Qzc4NjE4RjY4NDY0QjZFNTEyNjcyOUMnWlo=');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidURI(url) → {*}

Source:

是否为有效的 url

支持类型:
http(s)://(username:password@)(www.)domain.(com/co.uk)(/...)
(s)ftp://(username:password@)domain.com/...
git://(username:password@)domain.com/...
irc(6/s)://host:port/... //
afp over TCP/IP: afp://[@][:][/[]]
telnet://:@[:/]
smb://[@][:][/[]][?=[;=]]

Example
isValidURI('https://github.com/lodash');
// => true
Parameters:
Name Type Description
url string
Returns:
Type
*

isValidUserName(val, minLength, maxLength) → {boolean}

Source:

是否为有效的用户名,4到16位(字母,数字,下划线,减号)

Example
isValidUserName('xiaohua_qq');
// => true
Parameters:
Name Type Description
val string
minLength number
maxLength number
Returns:
Type
boolean
Source:

是否为有效的视频链接地址(视频格式可按需增删)

Example
isValidVideoLink('http://www.abc.com/video/wc.avi');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidWechatID(val) → {boolean}

Source:

是否为有效的微信号 6至20位,以字母开头,字母,数字,减号,下划线

Example
isValidWechatID('liwenbo_2010');
// => true
Parameters:
Name Type Description
val string
Returns:
Type
boolean

isValidZipcode(val) → {boolean}

Source:

是否为有效的中国邮政编码

Example
isValidZipcode('330561');
// => true
Parameters:
Name Type Description
val
Returns:
Type
boolean

last(array) → {boolean}

Source:
Since:
  • 1.2.1

获取数组的最后一项

Example
last(['1,2,3']);
// => '3';
Parameters:
Name Type Description
array
Returns:
Type
boolean

mapKeys(obj, fn) → {Object}

Source:

根据提供函数生成的键生成一个新对象 使用 Object.keys(obj) 来迭代对象的键。 使用 Array.reduce() 创建一个具有相同值的新对象,并使用 fn 来映射键。

Example
mapKeys({ a: 1, b: 2 }, (val, key) => key + val);
// => { a1: 1, b2: 2 }
Parameters:
Name Type Description
obj
fn
Returns:
Type
Object

mapValues(obj, fn) → {Object}

Source:

根据提供函数返回的值映射一个新对象

Example
const users = {
  fred: { user: 'fred', age: 40 },
  pebbles: { user: 'pebbles', age: 1 }
};
mapValues(users, u => u.age);
// => { fred: 40, pebbles: 1 }
Parameters:
Name Type Description
obj
fn
Returns:
Type
Object

merge(objs) → {*}

Source:

从两个或多个对象的组合中创建一个新对象

https://30secondsofcode.org/object#merge

Example
merge(
 {
  a: [{ x: 2 }, { y: 4 }],
  b: 1
},
 {
  a: { z: 3 },
  b: [2, 3],
  c: 'foo'
});
// => { a: [ { x: 2 }, { y: 4 }, { z: 3 } ], b: [ 1, 2, 3 ], c: 'foo' }
Parameters:
Name Type Description
objs
Returns:
Type
*

nativeJSBridge(method, params, cb)

Source:

分为两种情况
在线及离线
在线的情况下,H5应用是运行在 tzyj 的webview里,目前 navigator.userAgent 并没有 lightos,所以只能用tzyj自身注入的对象 window.winner
离线包情况下,H5应用是运行在 light 的容器里。因此就可以利用 light 本身提供的SDK,即使 tzyj 自身封装扩展的方法,如获取自选股等,是基于 light 的容器,也需要改造

Parameters:
Name Type Description
method string
params object
cb function

nativeReady(cb, type)

Source:

当 H5 页面完全展示之前需要和 native 先进行交互,此用来控制时序。只有 App 调用了 ready(deviceready,hsAppReady) 方法后,表示 App 端已经准备完毕,已注入了相关 js 对象。防止 App 还没注入 js 对象方法,H5 过早调用 App 提供的方法 兼容 lightOS 离线包及 tzyj 在线

Parameters:
Name Type Description
cb function
type string

可选,默认为 light

numberToChinese(num) → {string}

Source:
Since:
  • 1.2.5

数字转换成中文的大写数字

Example
numberToChinese(10001010);
=> "一千万一千一十"
Parameters:
Name Type Description
num
Returns:
Type
string

objectFromPairs(array) → {*}

Source:
Since:
  • 1.2.1

数组转换为键值对的对象

Example
objectFromPairs([['a',1],['b',2]]);
// => {a: 1, b: 2}
Parameters:
Name Type Description
array
Returns:
Type
*

objectToPairs(obj) → {Array.<Array.<any>>}

Source:

对象转化为键值对 使用 Object.keys() 和 Array.map() 遍历对象的键并生成一个包含键值对的数组。

Example
objectToPairs({ a: 1, b: 2 });
// => [['a',1],['b',2]]
Parameters:
Name Type Description
obj
Returns:
Type
Array.<Array.<any>>

only(obj, keys) → {*}

Source:

返回对象的白名单属性

https://github.com/tj/node-only

Example
var obj = {
  name: 'tobi',
  last: 'holowaychuk',
  email: 'tobi@learnboost.com',
  _id: '12345'
};
var user = only(obj, 'name last email');
// => {
      name: 'tobi',
      last: 'holowaychuk',
      email: 'tobi@learnboost.com'
    }
Parameters:
Name Type Description
obj
keys
Returns:
Type
*

preZeroFill(num, size) → {string}

Source:

对整数进行前置补0

Example
preZeroFill(12, 3);
// => 012
Parameters:
Name Type Description
num number

数值

size number

要补0的位数

Returns:
Type
string

removeClass(el, cls)

Source:
Since:
  • 1.1.5

Dom 操作,元素删除某个 class

Example
<div class="box flex"></div>
removeClass(document.querySelector('.box'), 'flex');
// => <div class="box"></div>
Parameters:
Name Type Description
el

HTML元素

cls

css类名

rgbToHex(r, g, b) → {string}

Source:
Since:
  • 1.2.0

RGB 转换为 Hex

Example
rgbToHex(0,0,0);
// => #000000
Parameters:
Name Type Description
r

r值

g

g值

b

b值

Returns:

Hex值

Type
string

scrollToTop()

Source:
Since:
  • 1.2.1

滚动到顶部 使用document.documentElement.scrollTop或document.body.scrollTop获取到顶部的距离。从顶部滚动一小部分距离。 使用window.requestAnimationFrame()来滚动。

Example
scrollToTop();

setDocumentTitle(title, img)

Source:

动态设置网页中的标题

Parameters:
Name Type Description
title
img

size(val) → {*}

Source:

获取数组,对象或字符串的大小。 Get type of val (array, object or string). Use length property for arrays. Use length or size value if available or number of keys for objects. Use size of a Blob object created from val for strings.

获取 val (array,object 或 string)的类型。 对于数组使用 length 属性。 对于对象,使用 length 或 size 如果可用的话,或者对象的键的数量。 对于字符串,使用根据 val 创建的Blob对象 的 size。

通过 split('') 将字符串拆分成字符数组并返回其长度。

Example
size([1, 2, 3, 4, 5]);
// =>  5

size('size');
// => 4

size({ one: 1, two: 2, three: 3 });
// => 3
Parameters:
Name Type Description
val
Returns:
Type
*

timeTaken(callback) → {*}

Source:
Since:
  • 1.2.1

测试函数所花费的时间

Example
timeTaken(() => Math.pow(2, 10));
// => 1024
Parameters:
Name Type Description
callback
Returns:
Type
*

toCamelCaseVar(variable) → {string}

Source:
Since:
  • 1.1.7

中划线转换小驼峰

Example
toCamelCaseVar('get_account_list');
// => getAccountList
Parameters:
Name Type Description
variable string
Returns:
Type
string

toNonExponential(num) → {string}

Source:

科学计数法转化为数值字符串形式

Example
toNonExponential(3.3e-7);
=> // "0.00000033"

toNonExponential(3e-7);
=> // "0.0000003"

toNonExponential(1.401e10);
=> // "14010000000"

toNonExponential(0.0004);
=> // "0.0004"
Parameters:
Name Type Description
num number
Returns:
Type
string

toZhCN(num) → {string}

Source:

toZhCN 把字符串转成以分为单位的整数。

Example
toZhCN(500.3);
// => 伍佰元叁角整
Parameters:
Name Type Description
num number | string

金额

Returns:

中文大写的金额, 标准会计格式

Type
string

trim$1(str, type) → {*}

Source:

清除空格

Example
trim(' 123 ');
// => 123
Parameters:
Name Type Description
str
type

1-所有空格 2-前后空格 3-前空格 4-后空格

Returns:
Type
*

utf16toEntities(str)

Source:

utf16字符串转实体字符

Parameters:
Name Type Description
str string

待编译的字符串