一、检测变量类型。web
// 此方法不只可检测出6种基本数据类型,还能检测出Array、Function Object.prototype.toString.call(Array) // '[object Array]'
二、去除字符串中的空格,可以使用trim()方法或正则表达式。正则表达式
// trim()用于去除字符串左右两端的全部空格 // trimLeft()、trimRight()用于去除字符串左边和右边的空格 ' today is Monday '.trim() // "today is Monday" ' today is Monday '.trimLeft() // "today is Monday "
// 使用正则表达式和replace方法能够去除全部空格 // 注意replace方法默认只能替换一次,所以正则表达式需加g修饰符完成所有替换 ' today is Monday '.replace(/\s*/g,'') // "todayisMonday" ' today is Monday '.replace(/^\s*|\s*$/g,'') // "today is Monday"
三、获取URL中的参数。数组
function getUrlParam(sUrl, sKey) { var reg = /[?&](\w+)=(\w+)/g // 正则表达式 var obj = {} while(reg.exec(sUrl)) // 每次匹配结果返回一个数组,RegExp.$1表示第一个子表达式的匹配,即key obj[RegExp.$1]? obj[RegExp.$1] = [].concat(obj[RegExp.$1],RegExp.$2):obj[RegExp.$1] = RegExp.$2 return sKey? obj[sKey]||'':obj }
四、把字符串转换为化成驼峰格式,如-webkit-border-image 转换后的结果为 webkitBorderImage。函数
// 注意(?!^)的使用,表示不以……开头 // replace方法的第二个参数为函数,函数的a表示完整匹配,b、c表示匹配到的子表达式 function convertToUpper(str){ return str.replace(/(?!^)-(\w)(\w+)/g, function(a,b,c){ return b.toUpperCase()+c.toLowerCase() }).replace(/-/g,'') }
五、数组去重,可使用IndexOf方法或利用对象的key不能重复的特性来作。spa
// 建立一个新数组,经过判断索引的方法去重,元素不存在时,indexOf返回-1 function arryUniq(arr){ var uniq = [] arr.forEach(function(item){ if(uniq.indexOf(item) < 0){ uniq.push(item) } }) return uniq }
// 对象的key值不能重复 function arryUniq(arr){ var obj = {} var uniq = [] arr.forEach(function(item){ if(!obj[item]){ obj[item] = true uniq.push(item) } }) return uniq }
六、时间格式化,formatDate(
new
Date(1409894060000),
'yyyy-MM-dd HH:mm:ss 星期w'
)
prototype
function formatDate (date, fmt) { if (/(y+)/.test(fmt)) { // RegExp.$1表示与正则表达式匹配的第一个子表达式 // 年比较特殊,单独计算。 fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '')) let o = { 'M+': date.getMonth()+1, 'd+': date.getDate(), 'H+': date.getHours(), 'm+': date.getMinutes(), 's+': date.getSeconds(), 'w': ['日', '一', '二', '三', '四', '五', '六'][date.getDate()] } for (let k in o) { if (new RegExp(`(${k})`).test(fmt)) { let str = o[k] + '' // 若是默认的日期格式是1位,则直接显示,不然加0 fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : (('00' + str).substr(str.length))) } } } return fmt } formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w')
七、计算字符串中各字符出现的次数(空格除外),并找出出现次数最多的字符。code
// 计算字符串中每一个字母出现的次数,并找出出现次数最多的字母 function countStr(str){ var max = 0 //定义变量存放最屡次数 var maxStr = '' // 定义变量存放出现次数最多的字符 var obj = {} // 定义对象存放字符和出现的次数 for(var i in str){ // 不计算空格字符 if(str[i] === ' ') continue obj[str[i]] = obj[str[i]]? obj[str[i]]+=1:obj[str[i]]=1 if(obj[str[i]] > max){ max = obj[str[i]] maxStr = str[i] } } console.log('出现最多的字符为',`${maxStr}:${max}`) return obj }