JavaScript共同工具类库jutil
来源:互联网 发布:java连接池用线程写 编辑:程序博客网 时间:2024/06/02 10:47
由来
工作中jQuery用的比较多,但jQuery再强大也有些方法是没有的,以前的做法就是东拼西凑,今天终于下定决心把平时用到的一些方法加以整理,这就是jutil的由来。
当前只有17个方法,涉及到的有Array、HTML、Cookie & localStorage、Date、String。这些方法都采用了原生的JS,不依赖于jQuery。
都说好的设计是易于理解的,不用过多介绍,而这也是我现在想达到的目标,因此下面的介绍会比较简单,如果大家哪个地方看不明白或有更好的建议,请提出来,我再优化。
Array相关
- jutil.arrayDistinct(Array)
- jutil.arrayIndexOf(Array,Item)
实现代码如下:
arrayDistinct: function (arr) { var tempArr = {}; for (var i = 0; i < arr.length; i++) { if (tempArr[arr[i] + 1]) { arr.splice(i, 1); i--; continue; } tempArr[arr[i] + 1] = true; } tempArr = null; return arr;},arrayIndexOf: function (arr, obj, iStart) { if (Array.prototype.indexOf) { return arr.indexOf(obj, (iStart || 0)); } else { for (var i = (iStart || 0), j = arr.length; i < j; i++) { if (arr[i] === obj) { return i; } } return -1; }},
第一个方法参考了菜鸟程序员的博文:前端攻城狮学习笔记五:继承、原型、setInterval、数组去重
HTML相关
- jutil.htmlEncode(sHtml)
- jutil.htmlDecode(sHtml)
实现代码如下:
如果有用jQuery,上面代码可以进一步简化为:
Cookie & localStorage相关
- jutil.getCookie(sKey)
- jutil.setCookie(sKey, sValue, iExpireSeconds)
- jutil.deleteCookie(sKey)
- jutil.getStorage(sKey)//如果浏览器支持HTML5本地存储(localStorage)优先用本地存储,否则用cookie,下同
- jutil.setStorage(sKey, sValue, iExpireSeconds)
- jutil.deleteStorage(sKey)
实现代码如下:
Date相关
- jutil.daysInFebruary(obj)//obj:数字(如2012)或时间(如new Date())
- jutil.daysInYear(obj)//obj:数字(如2012)或时间(如new Date())
- jutil.dateFormat(date, sFormat, sLanguage)//sFormat:yyyy为年,MM为月,DD为日,hh为时,mm为分,ss为秒,MMM为月份,EEE为星期。sLanguage:默认为中文,可以设置成英文(en)
- jutil.dateDiff(biggerDate, smallerDate)
- jutil.dateInterval(biggerDate, smallerDate)
从名子大家可能看不出最后两个方法的区别,这里命名可能是有些问题,大家有没有推荐的?
dateDiff表示两个时间之间相隔多长时间,返回的是"10分钟"、"2天"等字符串,一般用在要显示"XX分钟前"、"XX天前"时。
dateInterval表示两个时间精确差(精确到秒),返回的是"1天:1小时:1分钟:1秒"这样的字符串。
实现代码如下:
这里的dateFormat的实现代码参考的是我之前的一篇博客:javascript日期格式化函数,跟C#中的使用方法类似
String相关
- jutil.replaceURLWithHTMLLinks(sText, bBlank)
- jutil.getLength(sVal, bChineseDouble)
这个就比较简单了,直接上代码:
测试代码
测试效果:
小结
后面会继续添加正则方面的内容,本文也会持续更新。目前JS下载链接:http://files.cnblogs.com/artwl/jutil.js
欢迎使用,欢迎补充,欢迎挑错!
本文首发博客园:http://www.cnblogs.com/artwl/archive/2012/07/09/2583114.html
- JavaScript共同工具类库jutil
- jutil测试
- 共同数据类
- EasyUI扩展方法 + jutil.js
- 打造自己的Javascript工具类库
- lodash:javascript工具库
- javascript 工具类
- flash javascript工具类
- JavaScript Cookie 工具类
- JavaScript String工具类
- JavaScript工具库之Lodash
- JavaScript工具库之Lodash
- JavaScript获取时间工具类
- JavaScript 项目实战工具类
- javaScript日期工具类DateUtils
- javaScript字符串工具类StringUtils
- IBM与Sun谋求Java工具开发的共同利益
- 开源UML工具,邀请您参加共同完善它
- The Destroy/Create Cycle of Activities
- 写一函数,取汉字
- 块设备驱动程序分析之框架构建
- How to Uninstall Acoustica CD Label Maker
- 块设备驱动程序分析之内存模拟磁盘
- JavaScript共同工具类库jutil
- POJ 2707 水题,输入输出
- Android中左右滑屏实现
- session 中对象实例在不同事务中的状态
- JS 手势图形解锁
- gridview控件使用心得
- 系统每天自动关闭设置
- 快设备驱动程序之是内存模拟的磁盘支持格式化
- 初学者对通讯录软件开发的整体把握与分块实现----为通讯录设置相应的头像