发布一个JavaScript工具类库jutil,欢迎使用,欢迎补充,欢迎挑错!-阿里云开发者社区

开发者社区> 技术mix呢> 正文

发布一个JavaScript工具类库jutil,欢迎使用,欢迎补充,欢迎挑错!

简介:
+关注继续查看

由来

  工作中jQuery用的比较多,但jQuery再强大也有些方法是没有的,以前的做法就是东拼西凑,今天终于下定决心把平时用到的一些方法加以整理,这就是jutil的由来。

  当前只有17个方法,涉及到的有Array、HTML、Cookie & localStorage、Date、String。这些方法都采用了原生的JS,不依赖于jQuery。

  都说好的设计是易于理解的,不用过多介绍,而这也是我现在想达到的目标,因此下面的介绍会比较简单,如果大家哪个地方看不明白或有更好的建议,请提出来,我再优化。

Array相关  

  • jutil.arrayDistinct(Array)
  • jutil.arrayIndexOf(Array,Item)

  实现代码如下:

View Code

  第一个方法参考了菜鸟程序员的博文:前端攻城狮学习笔记五:继承、原型、setInterval、数组去重

HTML相关  

  • jutil.htmlEncode(sHtml)
  • jutil.htmlDecode(sHtml)

  实现代码如下:

View Code

  如果有用jQuery,上面代码可以进一步简化为:

View Code

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)

  实现代码如下:

View Code

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秒"这样的字符串。

  实现代码如下:

View Code

  这里的dateFormat的实现代码参考的是我之前的一篇博客:javascript日期格式化函数,跟C#中的使用方法类似

String相关

  • jutil.replaceURLWithHTMLLinks(sText, bBlank)
  • jutil.getLength(sVal, bChineseDouble)

  这个就比较简单了,直接上代码:

View Code

测试代码

  测试效果:

小结

  后面会继续添加正则方面的内容,本文也会持续更新。目前JS下载链接:http://files.cnblogs.com/artwl/jutil.js

  欢迎使用,欢迎补充,欢迎挑错!

  本文首发博客园:http://www.cnblogs.com/artwl/archive/2012/07/09/2583114.html

重构信息

  针对评论中出现的问题,我作了一次重构,请参考:给你的JS类库加上命名空间和扩展方法:jutil第一次重构



本文转自Artwl博客园博客,原文链接:http://www.cnblogs.com/artwl/,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
欢迎使用Performance analyzer 开源小工具!
2013-5-08 - version 1.0.0 released2014-3-21 - version 1.1.0 released Fixed - log4j thread safe problemFeature - support logback 代码地址 基于perfj的性能分析工具,欢迎大家使用,也欢迎大家继续完善~
906 0
使用 TypeScript 改造构建工具及测试用例
最近的一段时间一直在搞TypeScript,一个巨硬出品、赋予JavaScript语言静态类型和编译的语言。 第一个完全使用TypeScript重构的纯Node.js项目已经上线并稳定运行了。 第二个前后端的项目目前也在重构中,关于前端基于webpack的TypeScript套路之前也有提到过:TypeScript在react项目中的实践。
1446 0
苹果发布五个iPhone和iPod Touch系统补丁
2月4日消息,据国外媒体报道,苹果本周二发布了五个iPhone和iPod Touch系统补丁,修复了几个可以允许攻击者遥控控制这些设备的漏洞。 据苹果公司透露,一旦iPhone或者iPod Touch用户打开恶意的音频或者图像文件,或者访问了一个恶意FTP(文件传输协议)服务器,其中的三个漏洞就可能允许他人通过运行代码来实现远程控制用户的设备。
590 0
《北京市5G产业白皮书(2019)》发布,将建立5G发展专项保障基金
11月22日晚间,北京市经济和信息化局副局长孔磊在2019世界5G大会闭幕式上发布了《北京市5G产业白皮书(2019)》(以下简称《白皮书》)。
313 0
美国黑客发布iPhone 3G解锁免费软件yellowsn0w
北京时间1月3日消息,据国外媒体报道,美国一个黑客团队iPhone Dev Team在09年新年首日发布了一款iPhone 3G解锁免费软件yellowsn0w。解锁后的iPhone 3G将可在不同的运营商网络里使用。
641 0
+关注
2969
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载