在开发中会遇到一些简单实用的方法,比如移动端设备判断,获取url参数或者去掉字符串中的空格等等,这篇博客目的就在于记录下这些方法,持续更新。
去掉字符串中的空格
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
let _trim = (str, isGlobal) => { let result; result = str.replace(/(^\s+)|(\s+$)/g, ''); if (isGlobal.toLowerCase() === 'g') { result = result.replace(/\s/g, ''); } return result; };
|
默认替换字符串首位空格,如果第二个参数为g
,则替换字符串中所有的空格。
获取 url 中参数
1 2 3 4 5 6 7 8 9 10 11 12 13
|
let _getQueryString = (name) => { let reg = new RegExp('(^|&?)' + name + '=([^&]*)(&|$)', 'i'); let r = window.location.search.substr(1).match(reg) || window.location.hash.substr(1).match(reg); if (r != null) { return decodeURIComponent(r[2]); } return null; };
|
判断设备
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| let ua = window.navigator.userAgent; let browser = { isAndroid: () => { return ua.match(/Android/i) ? true : false; }, isIOS: () => { return ua.match(/iPhone|iPad|iPod/i) ? true : false; }, isWx: () => { return ua.match(/micromessenger/i) ? true : false; }, isWp: () => { return ua.toLowerCase().indexOf('windows phone') > -1; }, isMobile: () => { return ua.match(/(iPhone|iPod|Android|ios)/i) ? true : false; }, isPC: () => { return ua.match(/(iPhone|iPod|Android|ios)/i) ? false : true; } };
if (browser.isAndroid()) { console.log('android'); }
if (browser.isIOS()) { console.log('ios'); }
if (browser.isWp()) { console.log('windows phone'); }
if (browser.isWx()) { console.log('weixin'); }
if (browser.isMobile()) { console.log('Mobile'); }
if (browser.isPC()) { console.log('PC') }
|
type类型判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| isString (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'String' }
isNumber (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Number' }
isBoolean (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Boolean' }
isFunction (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Function' }
isNull (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Null' }
isUndefined (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Undefined' }
isObj (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Object' }
isArray (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Array' }
isDate (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Date' }
isRegExp (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'RegExp' }
isError (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Error' }
isSymbol (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Symbol' }
isPromise (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Promise' }
isSet (o) { return Object.prototype.toString.call(o).slice(8, -1) === 'Set' }
|
交换两个变量的值
利用 ES6 的解构实现,写法简单,语义非常清晰。
1 2 3 4
| let x = 1; let y = 2; [x, y] = [y, x]; console.log(x,y);
|
数组去重
利用ES6 的 Set 数据解构实现
``` javascript
function dedupe(array) {
return Array.from(new Set(array));
}
dedupe([1, 1, 2, 3]) // [1, 2, 3]