您的当前位置:首页>全部文章>文章详情

82个常规的前端JavaScript方法封装(61~70)

发表于:2021-12-05 17:44:54浏览:1064次TAG: #javascript #前端 #jquery #封装

本篇文章主要介绍的是一些常用的前端JavaScript方法封装,判断是否是一个数组,判断两个数组是否相等,时间与时间戳转换,常用正则验证,是否为PC端,去除字符串空格等,自己收集整理以便后期使用,需要的朋友可以阅读收藏。

61、判断是否是一个数组

const isArray = function(arr) { // 判断是否是一个数组
  return Object.prototype.toString.call(arr) === '[object Array]'
}

62、判断两个数组是否相等

const arrayEqual = function(arr1, arr2) { //判断两个数组是否相等
  if (arr1 === arr2) return true;
  if (arr1.length != arr2.length) return false;
  for (let i = 0; i < arr1.length; ++i) {
    if (arr1[i] !== arr2[i]) return false;
  }
  return true;
}

63、时间与时间戳转换

const stamp = { // 时间,时间戳转换
  getTime: function(time) { // 时间转10位时间戳
    let date = time ? new Date(time) : new Date()
    return Math.round(date.getTime() / 1000)
  },
  timeToStr: function(time, fmt) { // 10位时间戳转时间
    return new Date(time * 1000).pattern(fmt || 'yyyy-MM-dd')
  }
}

64、常用正则验证

const checkStr = function(str, type) { // 常用正则验证,注意type大小写
  switch (type) {    case 'phone': // 手机号码
      return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(str)    case 'tel': // 座机
      return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str)    case 'card': // 身份证
      return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str)    case 'pwd': // 密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线
      return /^[a-zA-Z]\w{5,17}$/.test(str)    case 'postal': // 邮政编码
      return /[1-9]\d{5}(?!\d)/.test(str)    case 'QQ': // QQ号
      return /^[1-9][0-9]{4,9}$/.test(str)    case 'email': // 邮箱
      return /^[\w-]+(.[\w-]+)*@[\w-]+(.[\w-]+)+$/.test(str)    case 'money': // 金额(小数点2位)
      return /^\d*(?:.\d{0,2})?$/.test(str)    case 'URL': // 网址
      return /(http|ftp|https)://[\w-_]+(.[\w-_]+)+([\w-.,@?^=%&:/~+#]*[\w-@?^=%&/~+#])?/.test(str)    case 'IP': // IP
      return /((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))/.test(str)    case 'date': // 日期时间
      return /^(\d{4})-(\d{2})-(\d{2}) (\d{2})(?::\d{2}|:(\d{2}):(\d{2}))$/.test(str) ||        /^(\d{4})-(\d{2})-(\d{2})$/.test(str)    case 'number': // 数字
      return /^[0-9]$/.test(str)    case 'english': // 英文
      return /^[a-zA-Z]+$/.test(str)    case 'chinese': // 中文
      return /^[\u4E00-\u9FA5]+$/.test(str)    case 'lower': // 小写
      return /^[a-z]+$/.test(str)    case 'upper': // 大写
      return /^[A-Z]+$/.test(str)    case 'HTML': // HTML标记
      return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str)    default:      return true
  }
}

65、是否为PC端

const isPC = function() { // 是否为PC端
  let userAgentInfo = navigator.userAgent  let Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']  let flag = true
  for (let v = 0; v < Agents.length; v++) {    if (userAgentInfo.indexOf(Agents[v]) > 0) {
      flag = false
      break
    }
  }  return flag
}

66、去除字符串空格

const trim = function(str, type) { // 去除空格, type:  1-所有空格  2-前后空格  3-前空格 4-后空格
  type = type || 1
  switch (type) {
    case 1:
      return str.replace(/\s+/g, '')
    case 2:
      return str.replace(/(^\s*)|(\s*$)/g, '')
    case 3:
      return str.replace(/(^\s*)/g, '')
    case 4:
      return str.replace(/(\s*$)/g, '')
    default:
      return str
  }
}

67、字符串大小写转换

const changeCase = function(str, type) { // 字符串大小写转换 type:  1:首字母大写  2:首页母小写  3:大小写转换  4:全部大写  5:全部小写
  type = type || 4
  switch (type) {
    case 1:
      return str.replace(/\b\w+\b/g, function(word) {
        return word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()
      })
    case 2:
      return str.replace(/\b\w+\b/g, function(word) {
        return word.substring(0, 1).toLowerCase() + word.substring(1).toUpperCase()
      })
    case 3:
      return str.split('').map(function(word) {
        if (/[a-z]/.test(word)) {
          return word.toUpperCase()
        } else {
          return word.toLowerCase()
        }
      }).join('')
    case 4:
      return str.toUpperCase()
    case 5:
      return str.toLowerCase()
    default:
      return str
  }
}

68、过滤html代码

const filterTag = function(str) { // 过滤html代码(把<>转换)
  str = str.replace(/&/ig, '&')
  str = str.replace(/</ig, '<')
  str = str.replace(/>/ig, '>')
  str = str.replace(' ', ' ')
  return str
}

69、生成随机数范围

const random = function(min, max) { // 生成随机数范围
  if (arguments.length === 2) {
    return Math.floor(min + Math.random() * ((max + 1) - min))
  } else {
    return null
  }
}

70、阿拉伯数字转中文大写数字

const numberToChinese = function(num) { // 将阿拉伯数字翻译成中文的大写数字
  let AA = new Array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十')  let BB = new Array('', '十', '百', '仟', '萬', '億', '点', '')  let a = ('' + num).replace(/(^0*)/g, '').split('.')  let k = 0
  let re = ''
  for (let i = a[0].length - 1; i >= 0; i--) {    switch (k) {      case 0:
        re = BB[7] + re        break
      case 4:        if (!new RegExp('0{4}//d{' + (a[0].length - i - 1) + '}$').test(a[0])) {
          re = BB[4] + re
        }        break
      case 8:
        re = BB[5] + re
        BB[7] = BB[5]
        k = 0
        break
    }    if (k % 4 === 2 && a[0].charAt(i + 2) !== 0 && a[0].charAt(i + 1) === 0) {
      re = AA[0] + re
    }    if (a[0].charAt(i) !== 0) {
      re = AA[a[0].charAt(i)] + BB[k % 4] + re
    }
    k++
  }  if (a.length > 1) { // 加上小数部分(如果有小数部分)
    re += BB[6]    for (let i = 0; i < a[1].length; i++) {
      re += AA[a[1].charAt(i)]
    }
  }  if (re === '一十') {
    re = '十'
  }  if (re.match(/^一/) && re.length === 3) {
    re = re.replace('一', '')
  }  return re
}