# dtool **Repository Path**: moduo_412/dtool ## Basic Information - **Project Name**: dtool - **Description**: 私人js工具类库 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-29 - **Last Updated**: 2021-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dtool #### 介绍 > 私人js工具类库,其实就是封装了一些工作中常用的工具方法,避免重复造轮子。 #### 使用说明 本地直接使用` ``` npm安装 ```javascript npm i dtool //在项目中使用 import dtool from 'dtool' ``` #### 验证工具 ##### 手机号码验证 `isPhone(any)` ```javascript dtool.isPhone('18888888888') //true ``` ##### 固定电话验证 `istel(any)` ```javascript dtool.isPhone('0516-88888888') //true ``` ##### 身份证号码验证 `isIdCard(any)` ```javascript dtool.isIdCard('320324199810248999') //true ``` ##### 邮箱验证 `isEmail(any)` ```javascript dtool.isEmail('986482@qq.com') //true ``` ##### 验证是否为数组 `isArray(any)` ```javascript var data = [1,2,3,4] dtool.isArray(data) //true ``` ##### 验证是否为数字 `isNumber(any)` ``` var data = 10 dtool.isNumber(data) //true ``` ##### 验证是否为合法url `isUrl(any)` ```javascript //支持http、https、FTP协议 var url = 'https://www.wangdahai.cn' dtool.isUrl(url) //true ``` #### 日期转换工具 ##### 返回当前时间戳 `now()` ```javascript dtool.now() // 1609743378278 相当于 Date.now() ``` ##### 日期字符串转换成时间戳 `timeParse(timeString,format)` ```javascript // 格式化规则请看dateFormat表格介绍 dtool.timeParse() // 1609743825317 获取当前时间戳 相当于Date.now() dtool.timeParse('2021-01-04') // 1609689600000 // 注意:当非标准格式的日期字符串要转换成时间戳,请在第二个参数中填写对应日期格式 。比如↓ dtool.timeParse('2021-1-4','yyyy-M-d') // 1609689600000 dtool.timeParse('2021/01/04 00:00:00:000', 'yyyy/MM/dd HH:mm:ss:SSS') // 1609689600000 //dtool.timeParse('2021-1-4') // 1609430400000 不写对应的格式获取的时间还是有一定的出入的 ``` ##### 任意格式转换成日期字符串 `dateFormat(date,format)` | 属性 | 描述 | 备注 | 值的范围 | | ---- | ------------ | -------------- | -------- | | yy | 年份 | 自动截取后两位 | | | yyyy | 年份 | | | | M | 月份 | | 1~12 | | MM | 月份 | 自动补0 | 01~12 | | d | 日 | | 1~31 | | dd | 日 | 自动补0 | 01~31 | | h | 12小时制 | | 1~12 | | hh | 12小时制 | 自动补0 | 01~12 | | H | 24小时制 | | 0~23 | | HH | 24小时制 | 自动补0 | 00~23 | | m | 分钟 | | | | mm | 分钟 | 自动补0 | 00~59 | | s | 秒 | | | | ss | 秒 | 自动补0 | 00~59 | | S | 毫秒 | | | | SSS | 毫秒 | 自动补0 | | | a | am/pm,小写 | | am/pm | | A | AM/PM,大写 | | AM/PM | | D | 年份的第几天 | | 1~366 | | DDD | 年份的第几天 | 自动补0 | 001~366 | | e | 星期几 | | 0~6 | | E | 星期几 | | 1~7 | | q | 季度 | | 1~4 | | W | 年的第几周 | | 1~53 | | WW | 年的第几周 | 自动补0 | | ```javascript // 传入时间戳 dtool.dateFormat(1609407847295) // '2020-12-31 17:44:07' // 传入日期对象 dtool.dateFormat(new Date()) // '2020-12-31 17:44:59' // 传入时间字符串 dtool.dateFormat('2020-12-31 17:55:30', 'yyyy/MM/dd') // '2020/12/31' // 传入其他杂项 dtool.dateFormat(new Date(), 'yyyy年MM月dd日 HH时mm分ss秒S毫秒,星期E 第q季度 今年第W周 今年第D天 a') // '2020年12月31日 17时50分43秒904毫秒,星期4 第4季度 今年第53周 今年第366天 pm' ``` #### URL相关操作 ##### 解析url解析成对象 `urlObj()` ```javascript console.log(dtool.urlObj()) //地址:http://127.0.0.1:8020/dtool/test/index.html?hbt=1609729260907 // 返回如下 { hash: "" hashKey: "" hashQuery: {} host: "127.0.0.1:8020" hostname: "127.0.0.1" href: "http://127.0.0.1:8020/dtool/test/index.html?hbt=1609729260907" origin: "http://127.0.0.1:8020" path: "/dtool/test/index.html?hbt=1609729260907" pathname: "/dtool/test/index.html" port: "8020" protocol: "http:" search: "?hbt=1609729260907" searchQuery: {hbt: "1609729260907"} } ``` ##### 根据键名获取url参数 `getQueryString(key)` ```javascript //地址 http://127.0.0.1:8020/dtool/test/index.html?hbt=1609729260907 var url = dtool.getQueryString('hbt') console.log(url) //1609729260907 ``` ##### 对象转URL参数 `objToQuery(obj)` ```javascript data={ name:'Moreduo', age:18 } var url = dtool.objToQuery(data) console.log(url) //name=Moreduo&age=18 ``` ##### URL参数转对象 `queryToObj(url)` ```javascript var url="name=Moreduo&age=18" var obj = dtool.queryToObj(url) console.log(obj) //{name: "Moreduo", age: "18"} ``` #### 对象相关操作 ##### 清空数组对象 `clearObj(arr|obj,value)` ```html ``` ##### 对象深浅拷贝 `cloneObj(obj,deep)` ```html ``` ##### 获取对象的键名 `keys(obj)` ```javascript var obj = {'javascript':true,'html':true,'css':true} //获取对象的键名,return array console.log(dtool.keys(obj)) //["javascript", "html", "css"] ``` ##### 获取对象的值 `values(obj)` ```javascript var obj = {javascript:"5年",html:"10年",css:"8年"} //获取对象的值,return array console.log(dtool.values(obj)) //["5年", "10年", "8年"] ``` ##### 获取对象第一个值 `first(obj)` ```javascript var obj = {javascript:"5年",html:"10年",css:"8年"} //获取对象的值,return value console.log(dtool.first(obj)) //5年 ``` ##### 获取对象最后一个值 `last(obj)` ```javascript var obj = {javascript:"5年",html:"10年",css:"8年"} //获取对象的值,return value console.log(dtool.last(obj)) //8年 ``` ##### 获取对象长度 `getSize(obj)` ```javascript var obj = {javascript:"5年",html:"10年",css:"8年"} //获取对象的值,return length,也可以用于数组字符串,不过显然是没必要 console.log(dtool.getSize(obj)) //3 ``` ##### 判断对象是否在另一个对象中 `inObj(obj,obj)` ```javascript var obj = {javascript:"5年",html:"10年",css:"8年"} var obj2= {javascript:"5年"} //获取对象的值,return Boolean console.log(dtool.inObj(obj,obj2)) //true ``` #### 文件工具 ##### 文件转BlobURL `toBlobURL(file)` ```html
``` ##### 文件转DataURL(base64) `toDataURL(file,callback)` ```html