82个常规的前端JavaScript方法封装(61~70)
发表于:2021-12-05 17:44:54浏览:1596次
本篇文章主要介绍的是一些常用的前端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
} 推荐文章

