npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

fun-tools

v0.0.1

Published

基于浏览器或node端的工具包

Downloads

8

Readme

一、基本函数 直接调用的函数。常用的一些函数封装。

在载入这个库包后,直接使用fun.*来调用函数。

1.1 ipToInt(sIP) fun.ipToInt(sIP)

将一个IP字串,转成一个整形数字。

1.1.1 sIP 字符串

如"192.168.0.1"这样之类的IP字符串。

1.1.2 返回值 数字

IP的整形数字

1.2 intToIp(nIP) fun.intToIp(nIP)

将一个整数,转成IP字符串。

1.2.1 nIP 数字

IP的整数

1.2.2 返回值 字符串

显示的IP字串

1.3 format(sStr, args) fun.format(sStr, args)

类似C的字符串格式工具

1.3.1 sStr 字符串

被替换的字串

{0}表示args数组里的[0]

{1}表示args数组里的[1]

1.3.2 args 数组

替换到sStr里面去

1.3.3 返回值 替换后的字符串

1.4 dateStr(dDate, bZzz) fun.dateStr(dDate, bZzz)

将一个日期形变量,转成日期字符串

1.4.1 dDate 日期

要转换日期变量

1.4.2 bZzz Boolean

是否显示毫秒,默是false

1.4.3 返回值 字符串

"2016-08-30 19:33:34"

"2016-08-30 19:33:34.342"

1.5 strDate(str) fun.strDate(str)

将一个字串,转成日期

1.5.1 str String

标准的日期字串,"yyyy-mm-dd hh:nn:ss"

1.5.2 返回值 Date

日期对象

1.6 num(param, bNegative) fun.num(param, bNegative)

将一个对象,转成数字

1.6.1 param 任何变量

null, undefined, "", 都会转为0

1.6.2 bNegative Boolean

默认为false

当为true时,将会保留负数。

为false时,将保存为正数。

1.7 numChs(num) 将一个数字,转成中文的汉字

1.8 chkPhoneNum(sTel) fun.chkPhoneNum(sTel)

判断一个字串,是否为正常的电话

1.8.1 sTel String

电话字串

1.8.2 返回值 Boolean

正常电话返回True

其他为False

1.9 money(val) fun.money(val)

将一个数字,转成金额。小数点保留两位的数字。

1.9.1 val Number

要转成金额的数字

1.10 formatDatetime(sDTFormat, dDT) fun.formatDatetime(sDTFormat, dDT)

将一个日期,格式化成任意样式

1.10.1 sDTFormat String

格式字串,

yyyy 年

m 月

mm 双位月

d 日

dd 双位日

h 时

hh 双位时

n 分

nn 双位分

s 秒

ss 双位秒

zzz 毫秒

1.10.2 dDT Date

要处理的日期

1.10.3 返回值 String

转换后的字符串

1.11 putString(nNum, sStr) 将一个字串,循环几次拼起来

如:

putString(5, "yes!");

返回:

"yes!yes!yes!yes!yes!"

1.11.1 nNum number

要循环几次,必须为数字,否则返回空字串。

1.11.2 sStr string

要循环的字串,默认为“ ”(空格)

1.12 clone(oSrc, bSort) 将oSrc,深复制到新的对象上。并返回这个对象

bSort: 是否要将key排序

1.13 seekVal(jOpts) 从一个JSON of Array中,找到自己想要的节点。

可以是树型的树结构。

var aOneR = fun.seekVal({

data: aRights,

key: "userid",

val: jRe.list[i].id

});

1.13.1 jOpts JSON

JSON的形式的参数传递

1.13.1.1 data Array

要被查找的数组,JSON of Array

1.13.1.2 key string

查找,结构中的key

1.13.1.3 val string

结构中的val内容,如果key与val都一样匹配上的话,则找到这个对象。会直接返回这个对象。

1.13.1.4 callback(jD, subkey, arrlist) function

用户自己的回调函数。如果返回内容,则认为是找到了对象。

一旦设置了callback,key与val将失去意义。

jD: 当前找到的数据对象

subkey: 当前是从哪个subkey找到的

arrlist: 父层的数组总数。

1.13.1.5 subkey string / array

如果是树形,则还可以递归去查找它的子层。subkey,则是指定,哪个对象,是它可以向下子层

2017-07-26

增加可以有,多个子层的方式。subkey,可以是数组,也可以是字串用“,”隔开的多个关键字。

1.13.1.6 downto boolean

在对subkey的数组处理时,使用从length到0的方式,倒向处理。

1.14 enumVal(jOpts) 枚举出所有的JSON对象,使用callback回调执行

1.14.1 jOpts

1.14.1.1 data JSON / Array

一个对象或者是数组

1.14.1.2 callback(thedata, thekey, pdata, pkey)

1.15 getTree(jOpts) 将一个数组列表,转成一个树型

1.15.1 jOpts

1.15.1.1 list | data array of JSON

数组

1.15.1.2 idkey string

ID列的字段名称

1.15.1.3 pidkey string

标记自己父层的字段名称

1.15.1.4 containkey string

包含子集的字段名称,自己定义

1.15.1.5 callback(list) 回调当前层的列表

如果回调有返回值,则会用这个返回值,去覆盖当前层数组。

1.15.1.6 indexkey 是否使用某个字段,进行排序。

1.15.1.7 indexordery

1.16 toArray(strlist, jOpts) 将一个字符串,转换成数组

数组成员,不会重复的数组成员,

1.16.1 strlist string

要转换的字符串

例如

"134,1234,532"

1.16.2 jOpts JSON

更多的配置信息

1.16.2.1 type string

最终数组的类型

有string, number等等

1.16.2.2 split string

字符串当中的分隔符

1.17 arr(any, jOpts) 将一个变量,转成数组。

1.17.1 any 任间变量,可以是字符串,也可以是数组,也可以是其他

1.17.2 jOpts JSON

设置信息

1.17.2.1 split 如果是输入的是字符串,那将它分拆成多个时,它们之间的分隔符是什么

1.17.2.2 type 数组里,期待的变量类型。

num,无符号数字。fun.num处理 number,数字

string,字符串

等等

1.17.2.3 distinct boolean

true: 返回数组不能重复

1.18 orderBy(jOpts) 对一个复杂对象数据,进行排序

返回排序后的对象数组

1.18.1 jOpts JSON对象

1.18.1.1 data 数组,要处理的数据

1.18.1.2 key 用来排序的字段

1.18.1.3 order 排序方式

asc 正序

desc 倒序

1.19 randomFrom(lower, upper) 获得一个范围的随机数。

1.20 replaceJSON(txt, JSON) 将一段文本,用JSON的属性替换。

txt:文本原文,里面的{{xxx}},将被JSON里的属性替换

JSON:JSON对象

txt: "my name is {{name}}."

JSON: {name: "bzm"}

返回的是:"my name is bzm."

1.21 animate(nFrom, nTo, callback) 动画函数,给一个开始,到结束的值。然后再通过回调出来

1.22 keyValue(src, split1, split2) 得到某字符串中,key=val的键值对

1.23 functionName(arguments_callee_toString) 通过函数整个内容的字符,得到函数的名称。

1.24 parseUrl(url) 把一个URL,转换成对象形式的样子。

1.24.1 url strubg

URL的字符串。如:

http://127.0.0.1/iss.html?key=34&rer=42#kkk343421

1.24.2 返回

1.24.2.1 hash kkk343421

1.24.2.2 host 127.0.0.1

1.24.2.3 path /iss.html

1.24.2.4 protocol http

1.24.2.5 query

1.24.2.5.1 key 34

1.24.2.5.2 rer 42

1.25 localPos(pos[], arr[[]]) 传入一个坐标pos,和一组坐标数组arr。

返回在arr里最接近pos的坐标位置的index

1.25.1 pos[] array of number

1.25.2 arr[[]]

1.25.3 返回 number

pos在arr的位置

1.26 fileSize(num, type) 将一串数字,格式成文件大小

type:

kb,mb,gb,tb等

1.27 valueConvert(val, type) 获得一个数据,在数据库表示的样子

1.27.1 val

1.27.2 type string

date:

string:

number:

1.28 flyTime(t) 友好的时间显示

15秒前

6分钟前

3小时前

昨天 19:32

12-23 19:40

2021-01-21 17:54

1.29 logSetup(cs, mute) 将系统的console.log函数,替换成自己的。

在使用log函数时,在前面会插入系统时间。

1.29.1 cs console

必须传入console对象

1.29.2 mute boolean

是否安静模式。安静模式,则不再打印日志,在linux下,pm2就不会日志过大的占用。

1.30 showParams(args) 将当前函数的,参数,都打印出来。

1.31 syncDo(opts, end) 异步执行的封装,

对一组数组、或对象集,进行异步的操作。一切正常后,调用end返回。

1.31.1 opts

1.31.1.1 data array | object

数组或对象集。

分别进行回调。

1.31.1.2 callback(onedata, end) 单个回调

这里可以执行用户的代码。最后使用end,表示程序执行完成。

end一定要调用。

1.31.1.2.1 onedata 有两种情况,

如果data是数组,则这里的onedata,是单个数组里的元素。

如果data是属性集。则这里的onedata是:

{

key: "属性名称",

val: "属性内容"

}

1.31.2 end(err) 最终回调

如果程序正常,则err为空

1.32 ?valueCheck(jData, jRules, end) (还在考虑,要不要加这么一个判断函数)

对一个jData对象里面的属性,根据jRules规则进行判断。

如果不合规,则end({message:"错误信息"}), 合规,则end(null)

1.32.1 jData object

任意包含属性的对象

1.32.2 jRules 规则对象

这里存在的key,必须是要包含的。

二、网络

2.1 ajax(url, jOpts) 向服务器请求一个资源,异步无刷新。

2.1.1 url string

请求的地址,如:"http://baidu.com/do.php"

2.1.2 jOpts JSON

一个配置参数集合。

2.1.2.1 success(body, jOpts) function

成功返回的回调函数

2.1.2.1.1 body string

请求获得的文本内容

2.1.2.1.2 jOpts JSON

就是自己的这个请求体

2.1.2.1.2.1 jOpts JSON

一个配置参数集合。

2.1.2.2 error(msg) function

出错后的回调,用户定义函数

2.1.2.2.1 msg string

错误的内容信息

2.1.2.3 type string

指明返回的类型,目前支持script和html等等

script,会自动成为GET方式

其他形式,则可定义为POST或GET。

2.1.2.4 timeout number

设置最大超时时间

2.1.2.5 method string

提交的方式,有"GET"或"POST"

2.1.2.6 cache boolean

是否使用缓存,默认false

2.1.2.7 data JSON

要提交的key=value的数据。

2.1.2.8 sync boolean

是否为异步,默认为true

2.1.2.9 contentType string

提交数据的方式。可以设置数据情况,编码格式等等。

例如:

"application/x-www-form-urlencoded; charset=utf-8"

上面是默认值。

application/json;

text/plain (上传键值对)

application/x-www-form-urlencoded (上传数据流。默认)

text/plain或application/json时,在chrome里显示上传类型为:request payload

application/x-www-form-urlencoded 时,在chrome里显示上传类型为:from data。

2.2 getParam(sKey) 得到一个查询字串的值,

这个查询字串,可以是?后的内容,也可以是#后面的内容

如:

http://url.com/?key=123#name=jack

getParam("key") = 123

getParam("name") = jack

三、浏览器DOM相关

3.1 dom(jOpts) fun.dom(...)

查找某个对象

与jQuery与互补

3.1.1 jOpts JSON / String

当是String时,会认为这个String为ID,而会返回这个对象。 如果是JSON,则有更复杂的逻辑,来查找一个或多个对象。

3.1.1.1 obj / tagObj DOM

在哪个对象基本上查找

3.1.1.2 seek String

查找什么

可以指定是哪一种类型的,如

"DIV","SPAN"等等

也可以设为“*”,则去查找所有子对象

也可以设为“+”,则只查找当前子层的对象

也可以设为“^”,则,如果要只查找一个,就不再向它的子层查找。这在多重继承的对象,非常有用。

3.1.1.3 index Number

当查找某个seek为DIV时,再设置一个数字index,则只返回这个index的对象

3.1.1.4 limit Number

当seek为*时,则可要求只显示前面的limit个。反边的不返回。

3.1.1.5 attr String / JSON

对象属性值。

3.1.1.5.1 String Stirng

如:

fun.dom({... attr: "list"})

就能返回这2个对象。

3.1.1.5.2 JSON JSON

如:

fun.dom({... attr: {list: "456"}})

就能返回后面这个对象。

3.1.1.6 funCb | callback (obj, subkey) function

当找到条件对象后,则回调一个用户函数

obj则是当前找到的对象。

subkey当前是从哪个列表进来的

注意:最早是使用的funCb。2021.7.15增加了callback也可以表示,回调

3.2 htmlAssign(jOpts)(已弃用,建议使用assign) fun.htmlAssign(jOpts)

将一对象里的内容,循环通过一个数组列表JSON,循环替换。

3.2.1 jOpts JSON

设置替换的配置

3.2.1.1 obj / tagObj DOM

在哪个对象上去替换。

这个对象下面的HTML内容,将复制成多份,并通过数组,进行复制。

3.2.1.2 tagHTML String

如果不设置obj / tagObj,也可以设置tagHTML来设置,原始的,要被替换的内容

3.2.1.3 tagId String

ID的字串,也可以只设置tagId来确定,某个对象

3.2.1.4 data Array of JSON / JSON

数据数组

3.2.1.5 funOne(sTxt, jObj, sSrc, index) funciton

替换某一个时的回调函数

3.2.1.5.1 sTxt String

替换后的字串

3.2.1.5.2 jObj JSON

当前替换这个对象的JSON对象

3.2.1.5.3 sSrc String

原始,没有替换前的内容

3.2.1.5.4 index Number

第几的一个对象,回调的索引数

3.2.1.5.5 返回值 String

这个回调的返回值,可以重新设为新的当前替换对象的内容。

3.2.1.6 funAll(oP) function

当所有替换未完成后,执行的回调函数

3.2.1.6.1 oP DOM

最后返回的父对象。与jOpts.obj一致。

3.3 assign(jOpts) 新的html数据渲染函数。

在单个回调时,转回的是DOM对象。

同时解决了,之前要使用div来包裹的问题。

如果能找到tagObj对象,在回调的DOM上,可以直接添加事件,属性,函数等。

在转入的data数组,会将生成的DOM,逆向赋值给元素_dom

list[n]._dom,就是这个HTML的DOM对象

2023-03-1

在调用后,会在tagObj对象上增加一个data属性,可从DOM访问到它下面的data数据。

3.3.1 jOpts JSON

参数集

tagId,tagHTML,tagObj可以只指定任中一个。

当设定tagObj时,也可以同时设置tagHTML

(在tagObj渲染,同时使用tagHTML的内容)

3.3.1.1 data JSON / array

要显示的数据,可以是数组和obj内容。

3.3.1.2 tagObj DOM

在哪个对象上进行数据渲染

3.3.1.3 tagHTML string

不是在特定的对象一渲染,而是在一段HTML里,进行渲染。

3.3.1.4 tagId string

要在哪个对象上

3.3.1.5 add boolean

是否叠加。默认为false。

如果有叠加时,则不删除之前tagObj下面已有的内容。

3.3.1.6 [callback / onadd](tag, srctxt, data, index, opts) function

当处理完一个时的回调。

3.3.1.6.1 this 这里的this,其实还是tag对象。

3.3.1.6.2 tag string / DOM

如果当前是tagHTML,则tag为string的html

如果当前是tagId或tagObj,则为DOM

3.3.1.6.3 srctxt string

这里是还没替换的原始html

3.3.1.6.4 data JSON

当前项的数据

3.3.1.6.5 index number

索引值,替换到第几的一个

3.3.1.6.6 opts 指向最初始化时的jOpts对象

其实,this,应该是jOpts对象比较合理。但,已经存在的代码中,使用了大量:this.data的引用。所以目前修改还是很困难。

3.4 uniqueId() fun.uniqueId()

获得一个不重复的ID

3.4.1 返回值 String

一个唯一的ID,如:uid323

3.5 css(jOpts) 与css相关的操作。

根据jOpts里的配置来

3.5.1 jOpts JSON

相关的设置信息

3.5.1.1 obj / tagObj DOM对象

必须是一个网页对象

3.5.1.2 addClass string

在增加className字符串

3.5.1.3 removeClass string

要删除的class字符串

3.5.1.4 from object of style

从哪些属性

3.5.1.5 style object of style

要把哪些属性变成最终的样子

3.5.1.6 time number

过渡时间,单位毫秒(ms)。

3.5.1.7 callback(jStyle) function

当结束后触发的回调函数

3.5.1.7.1 jStyle style object

返回混合后的style对象。

3.5.1.7.2 this JSON

当前传入的这个jOpts对象

3.5.1.7.2.1 jOpts JSON

相关的设置信息

3.6 getEvent(evt) 获得一个event对象,兼容各浏览器

3.6.1 evt event object

原生的event对象,IE里为event全局对象。其他浏览器,随鼠标事件参数传入。

3.6.2 返回值

3.6.2.1 event JSON

一个对象数据

"x": -1,

"y": -1,

"target": null,

"keyCode": -1,

"preventDefault": null,

"stopPropagation": null

orgEvent

target

keyCode

x

y

clientX

clientY

relateX

relateY

screenX

screenY

3.7 bind(oTarget, sEventName, fFun) 为一个DOM对象,添加事件

3.8 offset(oSrc, oTag, bFixed) 为一个DOM对象,计算它与另一个DOM之间的相对位置

3.8.1 oSrc DOM object

某个DOM对象

3.8.2 oTag DOM

某个DOM对象

3.8.3 bFixed boolean

false:要将里面滚动条的距离,考虑到

true: 不考虑滚动条的问题,只给出相对位置

3.8.4 返回值

3.8.4.1 jRe JSON

包含left, top 的对象

{

left: 30,

top: 25 }

3.9 transEnd(oObj, fFun) 给某个DOM对象,添加CSS3动画完成的事件。

3.10 iptNext(oParent, fEnd) 输入一个DOM,,对它下面所有Input进行整理,当它们,回车时,自动进入下一个输入。

到最后的submit输入框时,能调用最后的回调函数

3.10.1 oParent DOM

一个父对象,它下面的输入框,会整理成一个数组。

3.10.2 fEnd function

当最后一个输入框,再点击回车时

3.11 nextNode(obj) 得到obj的下一个兄弟对象

3.12 prevNode(obj) 得到obj的上一个兄弟对象

3.13 isShow(obj) 查看一个对象,当前是否显示。

会自动递归所有父层,以确定一个对象的显示状态

3.13.1 obj DOM

要判断的对象

3.13.2 返回值 boolean

true:显示

false:隐藏

3.14 clone(oSrc, bSort) 将oSrc,深复制到新的对象上。并返回这个对象

bSort: 是否要将key排序

3.15 fireEvent(obj, eventName) 触发一个事件

对一个对象,触发它所有的事件函数。

3.16 keysDo(sKeys, fun) 当在浏览器中,使用键盘,顺序敲入配置的字符时,则执行对应函数

3.17 getAttr(attr, dom, type) 获得一个DOM对象的属性

3.17.1 attr string

属性的名称

3.17.2 dom DOM

DOM对象

3.17.3 type string

属性的类型,函数会根据类型,自动转换返回的结果。目前支持的属性类型如下:

number 数字

json JSON对象

string 字符串

3.18 domToJson(dom) 将一个DOM对象,和它下面的内容,全部转换成JSON的样式

3.18.1 dom DOM对象,或 HTML 字串。

3.19 attr(dom, attrname, val) 读取,或写入一个对象的属性

3.19.1 dom DOM / String

DOM对象,或ID的字符串。

3.19.2 attrname string

属性的名称(注意命名规则)

3.19.3 val string / number / date / JSON / null

多种样式的,最终都会转成字符串。

如果是date日期型,将会转成getTime的整型字符串。

如果val为null,则会删除掉attrname这个属性。

3.20 cookie(key, val, time) 处理一个COOKIE

key要设置的key值

val设置的value值。如果val为空字串,则是清除这个字段

time是有效时间。单位:天。表示从现在开始,要保留多少天。这个cookie

3.21 session(key, val) 前端session存储。关闭浏览器后,消失

key要设置的key值

val设置的value值。如果val为空字串,则是清除这个字段

3.22 storage(key, val) 前端保存

key要设置的key值

val设置的value值。如果val为空字串,则是清除这个字段

3.23 seekDom(jOpts) 类型JQuery的选择器,返回页面上的DOM列表。

3.23.1 jOpts: "string" 获得ID为 jOpts的 DOM。返回 DOM 对像

3.23.2 jOpts: "JSON" 复杂的搜索关系

3.23.2.1 seek: "string" 查找某个标签,如div

3.23.2.2 seek: "JSON" 更复杂的查找功能

3.23.2.2.1 tag string

标签的字串

如div

3.23.2.2.2 attr: "string"

3.23.2.2.3 attr: "JSON"

3.23.2.2.4 attr[]: "Array"

3.23.2.3 obj DOM

从哪个对象上开始查找。

默认:document. body

3.23.2.4 tagId string

从哪个对像的id去找

3.23.2.5 tagObj 和obj功能一样

3.24 isFull() 浏览器,是否是全屏模式

返回true/false

3.25 doFull(full) 将浏览器设置为全屏,我非全屏。

full = 1 :全屏

full = 0 :退出全屏

3.26 txtToClip(txt) 将字符,放进剪贴板中

四、JSON处理

4.1 jsonGet(sJosn) fun.jsonGet(sJson)

将一个JSON字串,转成JSON对象。

类似:JSON.parse

4.2 jsonSet(sStr, jOne) fun.jsonSet(sStr, jOne)

获得一个全局的JSON对象,或设置一个JSON对象。

4.2.1 sStr String

JSON路径的字串。如:"myjson.person.name"

如果路径里有无定义的,也不会报错。

4.2.2 jOne JSON / all

如果有这个参数时,则是把 all 设定到某个路径上去。

如果这个路径不存在,则会逐层创建这些路径。

4.3 jsonToStr(oJSON) fun.jsonToStr(oJSON)

类似JSON.stringify。将一个JSON对象转为字符串。

4.4 xmlToJson(sXML) 将一段XML字串,转成JSON格式的字串

4.4.1 sXML string

XML的字串内容

4.5 jsonToXml(oJSON) 将一个JSON对象,转成xml,并返回