一、檢測變量類型。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 }