1.0.4 • Published 3 years ago
hsw-tools
Licence
ISC
Version
1.0.4
Deps
3
Size
97 kB
Vulns
0
Weekly
0
工具包
介绍
汇总可能会用到的辅助函数之类 类似:lodash
简单使用
/*
导出timejs单独模块
import {timejs} from 'hsw-tools';
导出默认,所有方法都会在defaultName中
import defaultName from 'hsw-tools';
*/
// 例如:调用timejs模块的backStartToEndDayPlus方法计算起止日期范围内天数和
import {timejs} from 'hsw-tools';
timejs.backStartToEndDayPlus('2023-01-01','2052-01-01') // 10585
// 例如:一些判断当前宿主浏览器环境的, 假设判断当前是否处于微信内置浏览器内,可以使用:isWxInBrowser 方法进行判断
import hswTools from 'hsw-tools'
console.log(hswTools.browser.isWxInBrowser()) //true | false
//像一些用到的实用库 也会默认导出的 例如:dayjs | lodash 目前也仅仅导出这两个库
导出模块
timejs
| 方法 | 介绍 | 参数 | 返回值 |
|---|---|---|---|
| dayjs | Day.js是一个极简的JavaScript库,可以为现代浏览器解析、验证、操作和显示日期和时间。详见 | null | null |
| backStartToEndDay | 计算给定时间内的天数; ==注:该函数无法跨年计算== |
详见示例 | Number |
| backStartToEndDayPlus | backStartToEndDay的升级版,功能一样,==增加跨年计算== 仅计算当前年度的话需要将第三个参数传入true,默认为false,跨年可忽略 |
详见示例 | Number |
| backTimeAreaDay | 获取给定时间范围内的每一天的信息 | 详见示例 | Array |
| backWeek | 根据年返回周 并且返回每周的起点-终点 | 详见示例 | Array |
| backNowWeek | 返回给定时间所在年的第几周 | 详见示例 | Array |
| backNowQuarter | 返回给定时间所在年的第几周 | 详见示例 | String |
backStartToEndDay
import {timejs} from 'hsw-tools';
const {backStartToEndDay} = timejs
/**
*
* @param sTime 开始时间
* @param endTime 结束时间
* @param toDay 是否将当天也计算在内
* @returns number 给定时间之间的天数 (默认返回当前年开始到当前的时间之间的天数)
*/
//当时间 2023-08-28
backStartToEndDay() // 239
backStartToEndDay('2023-01-01','2023-12-31',true) // 365
backStartToEndDay('2023-01-01','2023-12-31',false) // 364
backStartToEndDayPlus
import {timejs} from 'hsw-tools';
/**
* backStartToEndDay升级版本 增加夸年,其他特性和用法一致
* @param sTime 开始时间
* @param endTime 结束时间
* @param toDay 是否将当天也计算在内
* @returns number 给定时间之间的天数 (默认返回当前年开始到当前的时间之间的天数)
* 注意:如果是计算一整年的,且是本年度的切记需要设置today = true ,不然31号是不会计算进去的,跨年计算可忽略
*/
const {backStartToEndDayPlus} = timejs
backStartToEndDayPlus('2023-01-01','2052-12-31') // 364
backStartToEndDayPlus('2023-01-01','2052-01-01') // 10585
backTimeAreaDay
import {timejs} from 'hsw-tools';
const {backTimeAreaDay} = timejs
/**
* 返回给定时间段内的时间信息包括起始和结束时间 (时间戳对比的时候需要注意当前数据时间戳是该日期8点算起的,数据日补零需要)
* @param s 起始时间
* @param e 结束时间
* @returns array
*/
/*
[
{
formatTime: "2023-01-01"
time: 1672531200000
},
{
formatTime: "2023-01-02"
time: 1672617600000
}
]
*/
backTimeAreaDay('2023-01-01','2023-01-02')
backWeek
import {timejs} from 'hsw-tools';
const {backWeek} = timejs
/**
* 根据年返回周 并且返回每周的起点-终点
* @param year
* @param format 日期格式化 仅限年月日 例如:YYYY-M-D | YYYY-MM-MM | MM/YYYY/DD | YYYY年MM月DD日
*/
backWeek('2023')
/*
id:2,
label:'第2周', //处于年中第几周
oneDayList:[
{formatTime: '2022-01-03', time: 164116800000 }
....
{formatTime: '2022-01-09', time: 1641686400000}
],
value:['2022-01-03', '2022-01-09'] //周起止点
*/
backNowWeek
import {timejs} from 'hsw-tools';
const {backNowWeek} = timejs
/**
* 返回给定时间所在年的第几周
* @param date 时间
* @param backType 返回数据类型 1返回周的下标 2返回当前日期的一周数据
*/
backNowWeek('2023-08-28','1') // 36
backNowWeek('2023-08-28','2')
/*
[
{formatTime: '2023-08-28', time: 1693180800000}
....
{formatTime: '2023-09-03', time: 1693699200000}
]
*/
backNowQuarter
import {timejs} from 'hsw-tools';
const {backNowWeek} = timejs
/**
* 返回给定时间所在季度
* @param date 时间
* @param toChineseNumerals 是否转为中文大写数字
* @returns String | Number
*/
backNowQuarter('2023-08-28') // 3
backNowQuarter('2023-08-28',true) //三
arrayjs
| 方法 | 介绍 | 参数 | 返回值 |
|---|---|---|---|
| treeFlat | 树结构数组打平为一维数组 | 详见示例 | Array |
| filterSame | 数组对象去重 | 详见示例 | Array |
treeFlat
import {arrayjs} from 'hsw-tools'
const {treeFlat} = arrayjs
/**
* @param arr 需要打平的树结构数组
* @param field 需要拆解的字段
* @param parentName 能都代表父元素的字段(会被注入到新的打平的子元素中去)
* @returns []
*/
const origin = [
{
children:[
{
name:'张小三',
age:40,
children:[
{
name:'张小小三',
age:18,
}
]
}
],
name:'张三',
age:70
}
]
treeFlat(orignData,'children') // [{name:'张三',age:70},{name:'张小三',age:40}....]
filterSame
import {arrayjs} from 'hsw-tools'
const {filterSame} = arrayjs
/**
* 数组对象去重 (并不是全等去重,而是对比某字段)
* @param filterField 作为筛选条件的key
* @param arr 被筛选的数组
* @returns array
*/
const origin = [
{
age:40,
name:'张三'
},
{
age:70,
name:'李四'
},
{
age:40,
name:'张三'
}
]
filterSame('age',origin) //[{age:70,name:'李四'},{age:40,name:'张三'}]
lodash
mapBaidu (基于已申请key并正确引入项目-百度地图文档)
| 方法 | 介绍 | 参数 | 返回值 |
|---|---|---|---|
| getLocation | 定位服务,基于百度地图 | null | Object |
getLocation
import {mapBaidu} from 'hsw-tools'
const {getLocation} = mapBaidu
//需要授权 分为浏览器定位和IP定位 默认浏览器定位-失败(成功直接返回结果)-启用ip定位-成功/失败-返回结果
getLocation()
/*
lng: 117.5, //经度
lat: 27.5, // 维度
origin: {}, //源数据 地址信息可从源数据中获取
locationOrigin: 'IP' //定位数据来源 IP / LOCATION
*/
mapGaode (基于已申请key并正确引入项目-高德地图文档)
| 方法 | 介绍 | 参数 | 返回值 |
|---|---|---|---|
| areaCenter | 计算多个经纬度点的中心点,基于高德地图 | 详见示例 | AMapBounds |
areaCenter
import {mapGaode} from 'hsw-tools'
const {areaCenter} = mapGaode
/**
*
* @param {*} lns 经度合集
* @param {*} las 纬度合集
* @param {*} map 地图实例 传入此参数之后调用areaCenter方法完成时会自动将中心点调整到所传经纬度构成的矩形中心点
* @return bounds 详情见高德地图 AMap.Bounds 类
*/
const bounds = areaCenter([112.5654,118.2366.....],[21.564556,32.566....],map)
browser
| 方法 | 介绍 | 参数 | 返回值 |
|---|---|---|---|
| porm | 判断设备当前客户端 PC/Mobile | null | Mobile / PC |
| aori | 判断用户当前设备是Android还是IOS | null | Android / IOS |
| browserKernel | 判断浏览器内核名称 | null | MozillaFirefox / Opera / MicrosoftInternetExplorer / MicrosoftEdge / GoogleChromeorChromium / AppleSafari / unknown |
| isPad | 判断是否是pad | null | Boolen |
| isWxInBrowser | 判断当前是否是微信内置浏览器 | null | Boolen |
| isSafari | 判断是否为苹果的Safari浏览器 | null | Boolen |
| isIE | 是否是IE | null | Boolen |
| isIE8under | 是否是ie8以下版本 | null | Boolen |
testjs
| 方法 | 介绍 | 参数 | 返回值 |
|---|---|---|---|
| isemail | 验证电子邮箱格式 | null | Boolen |
| ismobile | 验证手机格式 | value | Boolen |
| isurl | 验证URL格式 | value | Boolen |
| isdate | 验证日期格式 | value | Boolen |
| isdateISO | 验证ISO类型的日期格式 | value | Boolen |
| isnumber | 验证十进制数字 | value | Boolen |
| isstring | 验证字符串 | value | Boolen |
| isdigits | 验证整数 | value | Boolen |
| isidCard | 验证身份证号码 | value | Boolen |
| iscarNo | 是否车牌号 | value | Boolen |
| isamount | 金额,只允许2位小数 | value | Boolen |
| ischinese | 是否中文字符 | value | Boolen |
| isletter | 是否纯字母 | value | Boolen |
| isenOrNum | 只能是字母或者数字 | value | Boolen |
| iscontains | 验证是否包含某个值 | value,param | Boolen |
| isrange | 验证一个值范围[min, max] | value,param | Boolen |
| israngeLength | 验证一个长度范围[min, max] | value,param | Boolen |
| islandline | 是否固定电话 | value | Boolen |
| isempty | 判断是否为空 | value | Boolen |
| isjsonString | 是否json字符串 | value | Boolen |
| isarray | 是否数组 | value | Boolen |
| isobject | 是否对象 | value | Boolen |
| ismsgcode | 是否短信验证码 | value,len = 6 | Boolen |
| isfunc | 是否函数方法 | value | Boolen |
| ispromise | 是否promise对象 | value | Boolen |
| isimage | 是否图片格式 | value | Boolen |
| isvideo | 是否视频格式 | value | Boolen |
| isregExp | 是否为正则对象 | value | Boolen |