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对象中的目标值
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:
从对象中检索给定选择器指示的一组属性
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");
// => "😃"
handleEmoji("😊", "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('<script>');
// => <script>
Parameters:
Name | Type | Description |
---|---|---|
str |
string |
Returns:
- Type
- string
htmlEncode(str) → {string}
- Source:
html字符编码
Example
htmlEncode('<script>');
// => <script>
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。
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
isValidImageLink(val) → {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
isValidVideoLink(val) → {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:
从两个或多个对象的组合中创建一个新对象
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:
返回对象的白名单属性
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 | 待编译的字符串 |