Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
前端项目开发常用js工具类,包括手机号码、身份证验证、中文校验、获取日期和根据日期格式获取日期或者转换日期格式、对象数组根据key分组、邮箱格式校验、获取历史时间,时间差,数组去重,多个对象数组去重等工具方法,减少多余包引用,增加工具类复用性,提高开发效率。
本工具库是基于纯JavaScript开发的,后续会扩展支持typescript。
$ npm i qnyutils -D
全部注入:在vue2项目中入口文件导入依赖并注册全局
import Vue from "vue";
import Qnyutils from "qnyutils";
Vue.prototype.$Qnyutils = window.Qnyutils = Qnyutils;
按需引入:比如需要时间工具和手机校验工具
// 按功能导入
import { getFormatTime, validateFormatPhone } from "qnyutils";
// 在js中使用
console.log(getFormatTime(), validateFormatPhone('123456'))
js/template 中基本使用案例:
// js 输入中文检验
this.$Qnyutils.chineseCheck('222') // false
// template 输入中文检验
$Qnyutils.chineseCheck('222') // false
更多工具类访问:## 目前集成的方法使用文档
本套工具库解释权归布依前端所有,盗版必究
1、贡献者:布依前端
参与贡献:
QQ:1766226354
[TOC]
校验手机号格式是否正确,正确返回true,错误返回false
// 格式
options: [string]
this.$Qnyutils.validateFormatPhone(options)
// 示例
this.$Qnyutils.validateFormatPhone('12345678942') // 返回 false
校验输入字符串是否是纯中文,正确返回true,错误返回false
// 格式
options: [string]
this.$Qnyutils.chineseCheck(options)
// 示例
this.$Qnyutils.chineseCheck('12345678942') // 返回 false
支持获取当前日期和传入日期格式化
支持格式:YYYY、YYYY-MM、YYYY-MM-DD、YYYY-MM-DD HH、YYYY-MM-DD HH:MM、YYYY-MM-DD HH:MM:SS、HH:MM:SS
用法:
/**
* @description 将标准时间转成需要格式返回,默认年月日时分秒格式,
* 如果不传入时间或者格式,默认获取当前时间 YYYY-MM-DD HH:MM:SS 返回
* @param {*} format 时间格式,默认:YYYY-MM-DD HH:MM:SS
* @param {*} time 当前时间,js中一般由new Date()获得,格式示例:Sun Nov 28 2021 19:46:23 GMT+0800 (中国标准时间)
* @returns string 年-月-日 xx:xx:xx 默认
*/
this.$Qnyutils.getFormatTime(time, format)
// 示例
// 获取当前时间含时分秒
this.$Qnyutils.getFormatTime() // 返回, 2023-08-18 11:46:04
// 获取当前日期,年月日,format= 'YYYY-MM-DD',time可以写成'', null
this.$Qnyutils.getFormatTime(null, 'YYYY-MM-DD') // 返回, 2023-08-18
// 获取当前日期,format= 'YYYY-MM-DD HH',time可以写成'', null
this.$Qnyutils.getFormatTime(null, 'YYYY-MM-DD HH') // 返回, 2021-09-12 15
// 获取当前年份 format= 'YYYY'
this.$Qnyutils.getFormatTime(null, 'YYYY') // 返回 2023
// 日期time='2023-08-12 11:10:10'转化成format= 'YYYY-MM-DD'
this.$Qnyutils.getFormatTime('2023-08-12 11:10:10', 'YYYY-MM-DD') // 返回 2023-08-12
// 日期time='2023-08-12 11:10:10'转化成format= 'YYYY-MM-DD HH:MM'
this.$Qnyutils.getFormatTime('2023-08-12 11:10:10', 'YYYY-MM-DD HH:MM') // 返回 2023-08-12 11:10
// 日期time='2023-08-12 11:10:10'转化成format= 'HH:MM:SS'
this.$Qnyutils.getFormatTime('2023-08-12 11:10:10', 'HH:MM:SS') // 返回 11:10:10
邮箱格式校验,正确返回true,错误返回false
// 格式
options: [string]
this.$Qnyutils.validateEmail(options)
// 示例
this.$Qnyutils.validateEmail('11222') // 返回false
this.$Qnyutils.validateEmail('11222@qq.com') // 返回true
专门针对密码格式校验的方法,必须是数字+字母,且长度最小为6,最大为20
// 格式
options: [string]
this.$Qnyutils.validatePassWord(options)
// 示例
this.$Qnyutils.validatePassWord('11222@qq.com') // 返回 false
this.$Qnyutils.validatePassWord('11222qqcom') // 返回 true
数字类型,专门针对纯数字校验,其他符合会被替换为空,返回纯数字,没有限制长度,如果输入没有中文,增返回空,否则返回字符串
// 格式
options: [string]
this.$Qnyutils.validateNumber(options)
// 示例
this.$Qnyutils.validateNumber('11222qqcom') // 返回 11222
保留两位小数,输入的必须是数字类型,且能为负数,返回保留两位小数的字符串
// 格式
options: [string]
this.$Qnyutils.getTwoDecimal(options)
// 示例
this.$Qnyutils.getTwoDecimal('11222qqcom') // 返回 Nan 错误示例
this.$Qnyutils.getTwoDecimal('11222.1255') // 返回 11222.13 正确示例
this.$Qnyutils.getTwoDecimal('-11222.1255') // 返回 -11222.13 正确示例
对象深度拷贝,可以用在对象属性或者其他类型数据的备份上。
// 格式
options:[object|array]
this.$Qnyutils.deepCloneObj(options)
// 示例
let obj = {age:12, name: '张三'}
this.$Qnyutils.deepCloneObj(obj) // 返回 newobj
历史时间格式化,主要是当前时间和历史时间对比,例如,几秒前,几天前,几分钟前*,*时间字符串例如:2021-11-29 16:05:10
// 格式
options:[string]: '完整时间字符串,包括年月日时分秒'
this.$Qnyutils.getHistoryTime(options)
// 正确示例
this.$Qnyutils.getHistoryTime('2021-11-29 16:05:10') // 返回 几天前
身份证合法,返回true,错误返回false
// 格式
options:[string]: '身份证号'
this.$Qnyutils.validateIdent(options)
// 正确示例
this.$Qnyutils.validateIdent('522328199609021714') // 返回 true
/**
* 多个数组去重, 可是对象数组和字符串数组
* @param {*} key 对象数组key,单个数组不能省略,设置为null即可
* @param {...any} _arguments 接收多个数组
* @returns array
*/
this.$Qnyutils.multDeduplication = (key, ..._arguments)
const numArr = [1, 2, 5, 6, 8, 7, 6, 5, 6]
const strArr = ['a', 'a', 'b', 'c', 'd', 'f', 'd']
const arr1 = this.$Qnyutils.multDeduplication(null, numArr)
const arr2= this.$Qnyutils.multDeduplication(null, strArr)
// arr1输出结果
[1, 2, 5, 6, 8, 7]
// arr2输出结果
['a', 'b', 'c', 'd', 'f']
单个/多个对象数组去重,需要依赖对象key进行划分,key必传参数,如果传递key为null,则无法去重,如果key值错误,程序出现警告。
const list = [
{ price: 95.00, name: '三国演义'},
{ price: 100.00, name: '西游记'},
{ price: 68.00, name: '红楼梦'},
{ price: 88.00, name: '水浒传'},
{ price: 88.00, name: '水浒传'}
]
const list2 = [
{ price: 915.00, name: '三国演义'},
{ price: 10.00, name: '西游记'},
{ price: 6.00, name: '红楼梦'},
{ price: 8.00, name: '水浒传'},
{ price: 88.00, name: '水浒传'}
]
const arr = this.$Qnyutils.multDeduplication('price', list, list2)
// arr输出结果
[
{
"price": 95,
"name": "三国演义"
},
{
"price": 100,
"name": "西游记"
},
{
"price": 68,
"name": "红楼梦"
},
{
"price": 88,
"name": "水浒传"
},
{
"price": 915,
"name": "三国演义"
},
{
"price": 10,
"name": "西游记"
},
{
"price": 6,
"name": "红楼梦"
},
{
"price": 8,
"name": "水浒传"
}
]
计算时间区间差值,返回相差天数、小时和分钟
用法
/**
* 计算时间区间差值,返回相差天数、小时和分钟
* @param {*} startTime 开始时间 2023-08-12 11:10:10
* @param {*} endTime 结束时间 2023-08-14 20:50:10
* @returns
* {
* day: days,
* hours: hour,
* timeStr: time,
* minutes
* }
*/
this.$Qnyutils.calcDateDifference (startTime, endTime)
// 调用方法
const value = this.$Qnyutils.calcDateDifference ('2023-08-12 11:10:10', '2023-08-14 20:50:10')
console.log(value)
// 打印结果
{
"day": 2,
"hours": 9.67,
"timeStr": "2天9.67时40分钟",
"minutes": 40
}
针对对象数组分组,回显分组后的数组,可以根据配置属性进行分组。
// 分组数据
const storehouse = [
{ name: "asparagus", type: "vegetables", quantity: 5 },
{ name: "bananas", type: "fruit", quantity: 0 },
{ name: "goat", type: "meat", quantity: 23 },
{ name: "cherries", type: "fruit", quantity: 5 },
{ name: "fish", type: "meat", quantity: 22 },
];
const list = this.$Qnyutils.groupByKey(storehouse, ({ type }) => type))
console.log(list);
// 输出结果
{
"vegetables": [
{
"name": "asparagus",
"type": "vegetables",
"quantity": 5
}
],
"fruit": [
{
"name": "bananas",
"type": "fruit",
"quantity": 0
},
{
"name": "cherries",
"type": "fruit",
"quantity": 5
}
],
"meat": [
{
"name": "goat",
"type": "meat",
"quantity": 23
},
{
"name": "fish",
"type": "meat",
"quantity": 22
}
]
}
FAQs
vue项目开发常用js工具类,包括对象、时间、验证、手机号码、身份证、中文校验、英文校验等工具方法,减少多余包引用,增加工具类复用性,提高开发效率;
The npm package qnyutils receives a total of 0 weekly downloads. As such, qnyutils popularity was classified as not popular.
We found that qnyutils demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.