背景

在日常开发中,我们经常会用一些工具类方法来实现业务逻辑 下面列举几种最常用的

URL截取参数

//直接调用输入想要截取的参数名称几个
export function getParamFromUrl(key) {if (key === undefined) return null;let search = location.search.substr(1);let mReg = new RegExp('(^|&)' + key + '=([^&]*)(&|$)');let mValue = search.match(mReg);if (mValue != null) return unescape(mValue[2]);return null;
}
//示例
let city = getParamFromUrl('city');

JSON是否为空判断

//输入想要检测的json数据 如果为空返回返回false
export function isNullObject(model) {if (typeof model === "object") {let hasProp = false;for (const prop in model) {hasProp = true;break;}if (hasProp) {return false;}return true;} else {throw "model is not object";}
}

数据类型检测

//检测变量的数据类型
export function getParamType(item) {if (item === null) return null;if (item === undefined) return undefined;return Object.prototype.toString.call(item).slice(8, -1);
}
//返回String Function Boolean Object Number

获取cookie

//获取document下cookie的具体某个参数值
export function getCookie(key) {if (key === undefined) {return undefined;}let cookies = document.cookie;let mReg = new RegExp('(^|;)\\s*' + key + '=([^;]*)(;|$)');let mValue = cookies.match(mReg);let ret = undefined;if (mValue != null) {ret = unescape(mValue[2]);}if (ret !== undefined) {ret = ret.replace(/^\"|\'/i, '').replace(/\"|\'$/i, '');}return ret;
}

版本号对比

一般在做APP端开发的时候需要用到一些版本控制,那么就需要针对版本号来进行对比,高版本或者低版本做一些特殊的逻辑处理,下面就是提供版本对比的方法

//传入要对比的版本号,一般前面一个传入当前的版本号,后面一个写上要对比的版本号
export function versionCompare(higher, lower) {let sep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';let higherAry = higher.split(sep),lowerAry = lower.split(sep);let l = Math.max(higherAry.length, lowerAry.length);for (let i = 0; i < l; i++) {let high = parseInt(higherAry[i] || 0);let low = parseInt(lowerAry[i] || 0);if (high > low) {return 1;}if (high < low) {return -1;}}return 0;
}
//返回值  higher > lower: 1;higher = lower: 0;higher < lower:-1

数组去重

export function arrayUniq(array){let temp = []; for(var i = 0; i < array.length; i++){if(temp.indexOf(array[i]) == -1){temp.push(array[i]);}}return temp;
}

iPhone X系列机型判断

export function isIphoneX() {// iPhone X、iPhone XSvar isIPhoneX =/iphone/gi.test(window.navigator.userAgent) &&window.devicePixelRatio &&window.devicePixelRatio === 3 &&window.screen.width === 375 &&window.screen.height === 812;// iPhone XS Maxvar isIPhoneXSMax =/iphone/gi.test(window.navigator.userAgent) &&window.devicePixelRatio &&window.devicePixelRatio === 3 &&window.screen.width === 414 &&window.screen.height === 896;// iPhone XRvar isIPhoneXR =/iphone/gi.test(window.navigator.userAgent) &&window.devicePixelRatio &&window.devicePixelRatio === 2 &&window.screen.width === 414 &&window.screen.height === 896;if (isIPhoneX || isIPhoneXSMax || isIPhoneXR) {return true;}return false;
}

前端实用小工具(URL参数截取、JSON判断、数据类型检测、版本号对比等)相关推荐

  1. Unity实用小工具或脚本——读写Json工具

    一.前言       在Unity中读写Json文件已经有非常好的工具,可以将Json文件和结构体数据进行相互转换,如图1所示,在Unity Asset Store中搜JSON.NET可以找到该插件, ...

  2. 前端实用小工具分享----Snipaste,Fireworks

    点击下载(官方下载地址) 安装包以及详细安装步骤在微信公众号:软件管家

  3. web前端开发小工具集合

    收集的一些轻量级非常实用的前端开发小工具,以后还会不定期进行更新,现将目前收集的信息列表如下:   CSS 3相关 1.CSS3样式生成器:http://www.css88.com/tool/css3 ...

  4. 基于 JavaFx 搭建的实用小工具集合 xJavaFxTool

    项目简介: gitee地址:xJavaFxTool GitHub地址:xJavaFxTool xJavaFxTool交流QQ群:== 387473650 == xJavaFxTool是使用javaFx ...

  5. 人生时间计算器_工具拯救效率,高效拯救人生!70个全国工程人实用小工具+算量表格...

    工具拯救效率,高效拯救人生.对在线工具的选取与运用,并不是炫技,而是实实在在提升工作效率.而这份工程量自动计算表+使用小工具对于造价人员而言,都是非常好的实用工具,让你比别人更高效的完成工作. 内容简 ...

  6. 【实用小工具】开发一个网页版LED点阵绘图模拟器

    LED点阵显示控制实验,始终是微机系统.单片机控制等硬件实验中重要的一节. 实验内容包括控制显示,图案位置计算,完整图案设计等等步骤.其中完整图案的设计尤其是复杂图案或汉字总是需要手动计算位置,非常的 ...

  7. python最简单的语言_Python语言的简单实用小工具

    本文主要向大家介绍了Python语言的简单实用小工具,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 在python进行自动化编写的过程中,常常需要造一些数据,比如,获取随机的合法 ...

  8. tcping扫描所有端口_ping TCP端口的实用小工具tcping

    原标题:ping TCP端口的实用小工具tcping ping 大家都很熟悉的ping 命令,属于网络层的ICMP协议,只能检查 IP 的连通性或网络连接速度, 无法检测IP的端口状态. telnet ...

  9. 发现一款程序员实用小工具

    发现一款程序员实用小工具,用来解析 json 数据的! JSON Online Validator and Formatter - LINT JSON

最新文章

  1. MySQL 错误代码和消息
  2. Lambda省略格式Lambda使用前提
  3. php小于neq qe,PHP模板判断语句eq相等 ne、neq不相等, gt大于, lt小于
  4. 如何在宝塔面板启用 ASP.NET CORE 网站并自动申请 HTTPS 证书
  5. ibatis mysql 同时删多个表报错_MySQL中Multiple primary key defined报错的解决办法
  6. springMVC学习(7)-springMVC校验
  7. jquery-尺寸相关
  8. SQL优化老出错,那是你没弄明白MySQL解释计划
  9. qchart 坐标轴设置_「Qt」利用QChart实现实时动态的曲线数据展示
  10. 小蠓虫如何灭_怎样消灭蠓虫?
  11. 对职场橡皮人Say No(转)
  12. 千万不要手贱在win10系统上执行win7激活工具!!!
  13. MySQL统计每月数量并计算同比增长率
  14. crm系统是什么很棒ec实力_哪个CRM系统好
  15. Codeforces Contest 730 A Toda 2 —— 贪心
  16. 硬盘扇区数据结构分析
  17. 小德张-清朝最后一位首领太监
  18. 在预测中使用LSTM架构的最新5篇论文推荐
  19. 服务器不稳定降权多久会恢复,遇到网站降权你会怎么做?
  20. 普罗米修斯监控 Oracle,普罗米修斯监控实例

热门文章

  1. 牛顿下山法c语言_数值计算(二十九)修正牛顿法I求解方程的根
  2. SpringCloud学习之SpringCloudStream集成kafka
  3. 概率霍夫变换(Progressive Probabilistic Hough Transform)原理详解
  4. Xamarin只言片语3——Xamarin.Android下支付宝(Alipay SDK)使用
  5. LintCode-- Remove Linked List Elements
  6. HTML vs XHTML vs DHTML
  7. cv2.imread读取图像结果none_PyTorch 42.图像操作
  8. S5PV210体系结构与接口07:中断系统编程
  9. 使用def文件从dll导出和_declspec(dllexport)导出区别以及调用示例
  10. oracle11g服务端配置实例,Win7系统Oracle11g服务端和客户端连接数据库配置