JS封装函数收纳


当前时间格式化

查看代码

今天是19700101

现在是18:18:00

倒计时函数

查看代码


    

倒计时

00 : 25 : 20

缓动动画animate.js

查看代码

4.普通冒泡排序

查看代码

function bubbling(arr, isBigSmall) { // arr 数组 , isBigSmall 是否从大到小排练
    let num = arr.length
    for (let i = 0; i < num; i++) {
        for (let j = 0; j < num; j++) {
            if (arr[j] > arr[j + 1]) {
                let numNumber = arr[j]
                arr[j] = arr[j + 1]
                arr[j + 1] = numNumber
            }
        }
    }
    if (isBigSmall || isBigSmall === true) { //从大到小排练
        arr = arr.reverse()
    }
    return arr // 默认从小到大
}

快速排序

查看代码

function rapidSort(arr, isBigSmall) { // arr 数组 , isBigSmall 是否从大到小排练
    let left = []
    let right = []
    let center = []
    let arrLength = arr.length
    for (let i = 0; i < arrLength; i++) {
        if (arr[i] === arr[0]) {
            center.push(arr[i])
        } else if (arr[i] > arr[0]) {
            right.push(arr[i])
        } else {
            left.push(arr[i])
        }
    }//将数组分为3部分, 同时进行排练,最后合并
    let leftnew = bubblingSortList(left)
    let rightnew = bubblingSortList(right)
    let newArr = leftnew.concat(center, rightnew)
    if (isBigSmall || isBigSmall === true) { //从大到小排练
        newArr = newArr.reverse()
    }
    return newArr
}
function bubblingSortList(index) {
    let arrLength = index.length
    for (let i = 0; i < arrLength; i++) {
        for (let j = 0; j < arrLength; j++) {
            if (index[j] > index[j + 1]) {
                let num = index[j]
                index[j] = index[j + 1]
                index[j + 1] = num
            }
        }
    }
    return index
}

数组去重ES5

查看代码

function outRepetitionES5(arr) {
    let newArr = []
    for (let i = 0; i < arr.length; i++) {
        if (newArr.indexOf(arr[i]) == -1) {
            newArr.push(arr[i])
        }
    }
    return newArr
}

数组去重ES6

查看代码

function outRepetitionES6(arr) {
    return [...new Set(arr)]
}

去除连续字符串

查看代码

//函数 
function uniq(str) {
    return str.replace(/(\w)\1+/g, '$1')
}
//调用示例
let str = uniq('ijsisiiiisaajjdain')
console.log(str);

范围随机数

查看代码

function randomFun(min, max, arrLength) { // min 随机数最小范围 ,ma随机数最大范围 arrLength[可选参数] 是否以数组的形式返回多个
    if (arrLength) { // 没有长度返回单个随机数
        singleRandomFun(min, max)
    } else { // 返回一个指定长度的数组,每一个都是随机数
        let arr = []
        for (let i = 0; i < arrLength;i++) {
            arr.push(singleRandomFun(min, max))
        }
        return arr
    }
}
//获取单个随机数
function singleRandomFun(min, max) {
    return Math.floor(Math.random() * (max - min))
}

生成指定位数验证码

查看代码

//1. 封装函数
function specifiedYZM(numNumber, isLetter) { // 验证码长度[numNumber] 是否有字母[isLetter] 
    if (numNumber) {
        let arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
        let arr2 = '1234567890qwertyuiopasdfghjklzxcvbnm'
        arr2 = arr2.split('')
        let arr = ''
        let arrLength = ''
        let tar = []
        if (isLetter) {
            arr = arr2
            arrLength = arr2.length
        } else {
            arr = arr1
            arrLength = arr1.length
        }
        for (let i = 0; i < numNumber; i++) {
            tar.push(arr[Math.floor(Math.random() * arrLength)])
        }
        tar = tar.join('')
        return tar
    } else {
        return '验证码长度不可为空'
    }
}

//2. 调用示例
let yanzhengma = specifiedYZM(4, true)
console.log(yanzhengma);

密码强度

查看代码

//封装
function passStrength(stringText) { //[stringText]密码形参
    var passLv
    if (stringText.length >= 6) {
        if (/[0-9]/.test(stringText)) {
            passLv = '弱'
        }
        if (/[a-z]/.test(stringText)) {
            passLv = '中'
        }
        if (/[A-Z]/.test(stringText)) {
            passLv = '较强'
        }
        if (/[\.|-|_]/.test(stringText)) {
            passLv = '很强'
        }
    }else{
        passLv = '请输入6位数以上密码'
    }
    return passLv
}

//调用示例
let pStrength = passStrength('12356')
console.log(pStrength);

 邮箱验证正则表达式

查看代码

function isAvailableEmail(sEmail) {
    var reg = /^([\w+\.])+@\w+([.]\w+)+$/
    return reg.test(sEmail)
}