Skip to content

lang1427/js-methods-util

Folders and files

NameName
Last commit message
Last commit date

Latest commit

06d4058 · Jun 15, 2023

History

17 Commits
Jun 15, 2023
Jun 15, 2023
Feb 17, 2023
Feb 17, 2023
Sep 22, 2021
Apr 12, 2023
Feb 21, 2023
Sep 22, 2021
Apr 12, 2023
Jun 15, 2023
Feb 17, 2023

Repository files navigation

methods-util

methods-util 是一个轻量级js常用工具函数集, 同时支持浏览器端和Node.js

安装

$ npm install methods-util

使用demo

全局使用

    import methods_util from 'methods-util'

    methods_util.isEmail('xxxx@xxx.xxx')

单独使用

    import {isEmail} from 'methods-util'

    isEmail('xxxx@xxx.xxx')

require

    const methods_util = require("methods-util")  // 全局导入
    const {isEmail} = require("methods-util")  // 按需导入

如果在尝试将模块导入自定义或遗留环境时出现问题,可以尝试直接导入模块包

    const methods_util = require("methods-util/dist/node/methods_util.cjs")  // 全局导入
    const {isArray} = require("methods-util/dist/node/methods_util.cjs")  // 按需导入

cdn

<script src="https://unpkg.com/methods-util@latest/dist/methods_util.js"></script>

<!-- minify -->
<script src="https://unpkg.com/methods-util@latest/dist/methods_util.min.js"></script>

API

is 模块 用于检测值是否符合标准

// 检测是否为邮箱
isEmail('xxxx@xxx.xxx')
// 检测是否为手机号码 
isMobile('12345678910')
// 检测是否大陆有效手机号码
isStrictMobile(131515151515)
// 检测是否电话号码
isPhone(3388438)
// 检测是否Url地址
isURL('https://www.baidu.com')
// 检测是否字符串
isString('xxx')
// 检测是否数字
isNumber(520)
// 检测是否Boolean
isBoolean(true)
// 检测是否函数
isFunction(()=>{
    console.log('123')
})
// 检测是否为Null
isNull(null)
// 检测是否为undefined
isUndefined(undefined)
// 检测是否对象
isObj({a:'b',c:'d'})
// 检测是否数组
isArray([1,2,3])
// 检测是否时间
isDate(new Date())
// 检测是否正则
isRegExp(/122/)
// 检测是否为错误对象
isError(Error('访问错误'))
// 检测是否为Symbol函数
isSymbol(Symbol(11))
// 检测是否为Promise对象
isPromise(new Promise((resolve,reject)=>{}))
// 检测是否为Set对象
isSet(new Set())
// 检测是否为移动端
isDeviceMobile()
// 检测是否为IOS
isIOS()
// 检测是否为PC端
isPC()
// 检测是否为微信浏览器
isWeiXinBrowser()
// 检测是否为QQ浏览器
isQQBrowser()
// 检测是否为IE浏览器
isIEBrowser()

bom 浏览器BOM模块相关函数

// 获取IE浏览器版本号
getIEVersions()
// 获取浏览器类型
getBrowserType()
// 获取url参数  假设当前url:https://www.baidu.com/search?name=zhangshan&age=19
// 你也可以手动传入url为第二个参数
getUrlParam('name') // 获取name的值,找不到则返回null
// 追加url参数 第一个参数为当前url   第二个参数为url参数的key值     第三个参数为url参数的value值
appendUrlParam('https://www.baidu.com/','name','zhangshan')

dom HTML元素DOM操作相关

<div id="dv" class="active"></div>

第一个参数为当前DOM,第二个参数为类名

// 当前元素是否包含某个class
hasClass(document.getElementById('dv'),'active')
// 当前元素添加某个class
addClass(document.getElementById('dv'),'active')
// 当前元素去除某个
removeClass(document.getElementById('dv'),'active')
// 去除Html标签
removeHtmltag(<script>alert(123)</script>)
// 动态引入js
injectScript('./script.js').then(res=>{
    console.log('引入后执行的操作')
},err=>{
    console.log(err)
})
// 获取滚动的坐标   接收参数为dom元素,默认为window
getScrollPosition()
// 滚动到顶部
scrollToTop()
// 获取光标所在位置 input.type==text  textarea
getCursortPosition(document.getElementsByTagName('input')[0])

功能函数

// 洗牌随机算法
shuffle([1,2,3,4,5,6,7,8,9,...])
// 类型判断集合  第一个参数为要检测的值,第二个参数为验证类型 支持以下
// phone tel card pwd postal QQ email money URL IP date english chinese lower upper HTML
checkStr('xxx@xxx.xxx','email')
// 严格的身份证效验
isCardID('******************')
// 随机数范围  (第一个参数为随机数的最小值 第二个参数为随机数的最大值)
randomRange(0,100)
// 判断元素是否在数组中  (第一个参数为当前数组,第二个参数为需要判断的元素)
inArray([1,2,3,4,5,6],1)
// 数组排序 (第一个参数为当前数组,第二个参数为排序类型,1:从小到大 2:从大到小,默认为1)
sort([321,156,126,48,11,77,99,654,331])
// 数组去重
unique([11,66,31,11])
// 求两个集合的并集
union([1,23,5,16,11,8],[23,5,168,184,63])
// 求两个集合的交集
intersection([1,23,5,16,11,8],[23,5,168,184,63])
// 删除集合中其中一个目标元素  (第一个参数为当前数组,第二个参数为要删除的元素)
listRemoveTarget(['a','b','c','d'],'b')
// 求集合中的最大值
listMax([23,5,168,184,63])
// 求集合中的最小值
listMin([23,5,168,184,63])
// 求集合中的和
sum([23,5,168,184,63])
// 求集合中的平均值
average([23,5,168,184,63])
// 去除空格   (第一个参数是当前字符,第二个参数为去除空格的格式 1-所有空格 2-前后空格 3-前空格 4-后空格  默认为1)
trim(' 爱 上咖啡赶上 ')
// 检测密码强度   return  长度小于6为0   出现数字+1  出现小写字母+1  出现大写字母+1  出现特殊字符+1
checkPwd('zxcvbnm??123')
// 防抖函数      (第一个参数为函数名称,第二个参数为时间间隔)
const f1 = ()=>{
    console.log(222)
}
debounce(f1,3000)
// 节流函数     (第一个参数为函数名称,第二个参数为时间间隔)
const f1 = ()=>{
    console.log(222)
}
throttle(f1,3000)
// 获取文章中出现次数最多的单词   return 出现次数最大的单词  出现的次数
let word = `  Everyone's heart have a hero,maybe a person who save the people,maybe a animal who have got good spirit. So far,I can't forget a person who helped plenty of people.His name is Leifeng.I think he was a good person I can't understand why he was so friendly,but I really know,he was a hero in my heart.I looked up upon him.and I will do all things I can do,I want to be the 2nd Leifeng.`
findMostWord(word)
// 数组扁平化 (将一个多维数组变成一个一维数组)  [1, [2, 3, [4, 5]]]  ------>    [1, 2, 3, 4, 5]
flattenArray([1, [2, 3, [4, 5]]])
// 求两个数的最大公约数
getMaxCommonDivisor(8,36)
// 最两个数的小公倍数
getMinCommonMultiple(8,36)
// 判断字符串是否回文字符串
isPalindrome('abccba')
// 文件大小转化    接收一个number类型的数字  返回其对应的文件大小 单位为:" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"
to_filesize()