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

etools

v1.5.4

Published

marvengong js tools

Downloads

22

Readme

etools

安装和使用

  • 使用npm安装:npm install -s etools

    通过es6模块引入,如import _ from "etools";console.log(_.extend(true,{},{"age":23}));

  • 下载并在页面引入etools.js

    直接调用ETool对象中得方法,如console.log(ETools.extend(true,{},{"age":23}));

  • Git 仓库地址 https://github.com/MarvenGong/ETools


版本说明

  • 1.3.2 修改了部分方法使用了箭头函数导致低版本浏览器兼容性问题
  • 1.2.8 新增datetime下根据身份证号码获取年龄的方法getAgeByIDCard
  • 1.2.7 新增datetime下根据出生日期获取年龄的方法getAgeByBirthday
  • 1.2.5 新增async相关函数用来处理异步函数常用方法
  • 1.2.3 修正了部分bug,新增array数组扩展,增加Array.filterBy方法
  • 1.2.2 修正了部分bug,新增string下的generateUUID和addNum方法
  • 1.0.9 修正了deparam函数依赖jquery的$.each函数的问题

详细文档

对象相关

  • ETools.extend(deep,obj1,obj2)

    作用:类似于jquery.extend方法,合并json对象,并将合并后的对象保存到obj1中作为返回值

    参数: 1. deep,是否深度复制,设为true,会复制对象中嵌套的对象。 2. obj1,obj2,要合并的对象

    案例:ETools.extend(true,{"name":"zhangsan",gender:"male"},{"age":12}) 输出结果{"name":"zhangsan",gender:"male","age":12}

    说明,我们可以将obj1设为空{},用这个方法克隆一个对象,解决引用类型赋值的问题

url请求相关

  • ETools.deparam(str)

    将jquery序列化表单之后得到的参数字符串转换成标准的json对象

    str,即要格式化的字符串

    ETools.deparam("aaa=bbb&ccc=ddd")输出结果{aaa:bbb,ccc:ddd}

    查看演示>>

  • ETools.urlParamToObj(url)

    将连接中的get请求参数转换成json对象

    url:链接

    ETools.deparam("www.baidu.com?aaa=bbb&ccc=ddd")输出结果{aaa:bbb,ccc:ddd}

事件

  • ETools.stopPropagation(event)

    阻止事件向上冒泡,点击某元素不会触发父元素的事件

    event:事件对象

    ETools.stopPropagation(event)

异步函数相关

  • ETools.async.wait(timestamp)

    在异步函数中等待指定的时间

    timestamp 等待的时间的毫秒数 async getUserList() { await ETools.async.wait(2000) }

时间日期相关

  • ETools.datetime.compareDate(starate,endDate)

    比较两个日期的大小

    日期格式"yyyy-mm-dd",如果返回值为-1,则前者大于后者,为0两者相等,为1,后者大于前者

    ETools.datetime.compareDate("2015-12-11","2015-12-12")

  • ETools.datetime.compareTime(startTime,endTime)

    比较两个时间的大小

    日期格式"yyyy-mm-dd h:mi:s",如果返回值为-1,则前者大于后者,为0两者相等,为1,后者大于前者

    ETools.datetime.compareDate("2015-12-11 12:10:00","2015-12-12 12:10:00")

  • ETools.datetime.arriveTimerFormat(s)

    将秒数转换成对应的多少小时,多少分多少秒(用于倒计时的显示)

    s:要计算的秒数

  • ETools.datetime.arriveTimerFormat(52010)->[0, 14, 26, 50, "14:26:50"]

  • ETools.datetime.format(date,formatStr)

    将Date类型的时间转换成指定格式的字符串

    ETools.datetime.Format(new Date(),"yyyy-MM-dd h:m:s 星期w")->"2015-16-24 15:16:15 星期四"

  • ETools.datetime.parse(timeStr)

    将时间字符串转换成对应的时间戳

    ETools.datetime.parse("2015-16-24 15:16:15")->1461482175

  • ETools.datetime.getNewDay(dataStr,addNumber)

    日期加上天数得到新的日期

    dateTemp 需要参加计算的日期,days要添加的天数,返回新的日期,日期格式:YYYY-MM-DD

    参数:dataStr原来的日期(如:“2014-12-1”)

    addNumber要增加或减少的天数,减少就给负数值

    如:ETools.datetime.getNewDay("2017-12-1",2) -- "2017-12-3"

    ETools.datetime.getNewDay("2017-12-1",-2) -- "2017-11-29"

  • ETools.datetime.getAgeByBirthday(birthdatStr)

    根据出生日期获取年龄

    birthdatStr 出生日期标准格式的字符串 如:1991-08-20

    ETools.datetime.getAgeByBirthday("1991-08-20") -- 27

  • ETools.datetime.getAgeByIDCard(idcard)

    根据出生日期获取年龄 如果传入的不是标准的身份证则返回false

    idcard 身份证号 如:"***19951208x"

    ETools.datetime.getAgeByIDCard("***19951208x") -- 23

####html格式操作

  • ETools.html.htmlEncode(str)

    把html中的常见符号转换成特殊符号码,如"<"转换成"&lt;"

    参数str,要转换的html代码

  • ETools.html.htmlDecode(str)

    把html代码转换成html元素

    参数str,要转换的html字符串

页面操作

  • ETools.page.addFavorite(url,title)

    将页面添加到浏览器收藏夹

    url:要添加的地址信息。title:在收藏夹中的名字

    ETools.page.addFavorite("www.baidu.com","百度")

  • ETools.page.addHome(url)

    将页面设为浏览器的首页

    url:要添加的地址信息。

    ETools.page.addFavorite("www.baidu.com")

动态加载

  • ETools.loadStyle(styleUrl)

    动态加载样式表

    styleUrl:要加载的样式文件的地址

    ETools.loadStyle("css/style.css")

浏览器信息获取

  • ETools.getExplorerInfo()

    返回浏览器的名称以及版本信息{browerName:"google",version:"3.10.101.1"}

字符串操作

  • ETools.string.getStrLength(str)

    获取字符串长度,中文字符按两个长度计算

    str:要计算的字符串

    ETools.string.getStrLength("ilove你")->7

  • ETools.string.trim(str)

    去掉字符串左右的空格

    str:要去空格的字符串

    ETools.string.getStrLength(" aaa ")->"aaa"

  • ETools.string.number2String(number)

    参数 number : 要转换的数字

    把1,2,3,4....,99999 类型的数字转换成中文字符串

    如:ETools.string.number2String(123) -> “一百二十三”

  • ETools.string.generateUUID()

    生成一个唯一标识的字符串(UUID算法)

  • ETools.string.addNum(number1, number2)

    参数 number1;number2 : 要相加的两个数字

    包含浮点数的两个数相加,解决丢失精度的问题

    如:ETools.string.addNum(1.1, 1.2) -> “2.3” 如果直接执行1.1+1.2会出现等于2.299999999999999999999的情况

表单验证

  • ETools.vertify.isURL(str)

    验证url地址

    ETools.vertify.isURL("www.baidu.com")->true

  • ETools.vertify.isEmpty(str)

    验证是否为空

    ETools.vertify.isEmpty(" ")->true

  • ETools.vertify.isDigit(str)

    验证是否是数字

    ETools.vertify.isDigit("2.0")->false

  • ETools.vertify.isTelephone(str)

    验证固定电话

    ETools.vertify.isTelephone("023-55813950")->true

  • ETools.vertify.isMobile(str)

    验证手机号码

    ETools.vertify.isMobile("15696544221")->true

  • ETools.vertify.isQQ(str)

    验证QQ号

    ETools.vertify.isQQ("1634251421")->true

  • ETools.vertify.isEmail(str)

    验证邮箱地址

    ETools.vertify.isEmail("[email protected]")->true

  • ETools.vertify.isIDCard(str)

    验证身份证号码

    ETools.vertify.isIDCard("500235199008205570")->true

  • ETools.vertify.isPlusDigit(str)

    验证是否是无符号正整数

    ETools.vertify.isPlusDigit("52")->true

  • ETools.vertify.isChinese(str)

    验证中文字符

    ETools.vertify.isChinese("我爱你")->true

  • ETools.vertify.isDate(str)

    验证日期

    ETools.vertify.isDate("2015-12-12")->true

  • ETools.vertify.isPostalCode(str)

    验证邮政编码

    ETools.vertify.isPostalCode("400521")->true

  • ETools.vertify.isRegisterUserName(str)

    验证登录名,只能输入5-20个以字母开头、可带数字、“_”、“.”的字串

    ETools.vertify.isRegisterUserName("gong163")->true

  • ETools.vertify.isTrueName(str)

    校验用户姓名:只能输入1-30个以字母开头的字串

    ETools.vertify.isTrueName("龚明华")->true

  • ETools.vertify.isPassword(str)

    校验密码:只能输入6-20个字母、数字、下划线

    ETools.vertify.isPassword("gong1632542142")->true

数组相关

  • Array.filterBy(key, value) 从对象数组中根据对象的key筛选值等于value的对象,如果键值对唯一则返回对象,如果不唯一则返回对象数组。

    key: 对象中的键,value: 要筛选的键所对应的值

    [{name: '张三',age: 12},{name: '张三',age: 33},{name: 'lisi',age: 22}].filterBy('name', '张三') -> [{name: '张三',age: 12},{name: '张三',age: 33}];

Cookie操作

  • ETools.cookie.setCookie(name, value, Hours)

    设置Cookie值

    name:cookie的key,value:cookie的value,Hours:Cookie的超时时间

    ETools.cookie.setCookie("username", "xiaoming", 0.5)

  • ETools.cookie.getCookie(name)

    获取Cookie值

    name:cookie的key

    ETools.cookie.getCookie("username")->"xiaoming"

  • ETools.cookie.delCookie(name)

    删除Cookie

    name:cookie的key

    ETools.cookie.delCookie("username")

html格式操作

  • ETools.openWindow(url,windowName,width,height)

    打开一个弹窗窗口

    url打开的链接,windowName窗口的title,width窗口宽度,height窗口高度

    ETools.openWindow("www.baidu.com","百度",500,600)

jquery插件

  • checkAll()

    表格的行的全选和反全选

    $(".checkAll").checkAll();

    需要给复选框绑定checkAll()事件。为其加上data-table属性,属性值指向要执行全选的table的id。

    如果有多个复选框共同作用于同一个表格,给这些复选框加上相同的data-table属性值即可