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,并返回