前端实用小工具(URL参数截取、JSON判断、数据类型检测、版本号对比等)
背景
在日常开发中,我们经常会用一些工具类方法来实现业务逻辑 下面列举几种最常用的
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判断、数据类型检测、版本号对比等)相关推荐
- Unity实用小工具或脚本——读写Json工具
一.前言 在Unity中读写Json文件已经有非常好的工具,可以将Json文件和结构体数据进行相互转换,如图1所示,在Unity Asset Store中搜JSON.NET可以找到该插件, ...
- 前端实用小工具分享----Snipaste,Fireworks
点击下载(官方下载地址) 安装包以及详细安装步骤在微信公众号:软件管家
- web前端开发小工具集合
收集的一些轻量级非常实用的前端开发小工具,以后还会不定期进行更新,现将目前收集的信息列表如下: CSS 3相关 1.CSS3样式生成器:http://www.css88.com/tool/css3 ...
- 基于 JavaFx 搭建的实用小工具集合 xJavaFxTool
项目简介: gitee地址:xJavaFxTool GitHub地址:xJavaFxTool xJavaFxTool交流QQ群:== 387473650 == xJavaFxTool是使用javaFx ...
- 人生时间计算器_工具拯救效率,高效拯救人生!70个全国工程人实用小工具+算量表格...
工具拯救效率,高效拯救人生.对在线工具的选取与运用,并不是炫技,而是实实在在提升工作效率.而这份工程量自动计算表+使用小工具对于造价人员而言,都是非常好的实用工具,让你比别人更高效的完成工作. 内容简 ...
- 【实用小工具】开发一个网页版LED点阵绘图模拟器
LED点阵显示控制实验,始终是微机系统.单片机控制等硬件实验中重要的一节. 实验内容包括控制显示,图案位置计算,完整图案设计等等步骤.其中完整图案的设计尤其是复杂图案或汉字总是需要手动计算位置,非常的 ...
- python最简单的语言_Python语言的简单实用小工具
本文主要向大家介绍了Python语言的简单实用小工具,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 在python进行自动化编写的过程中,常常需要造一些数据,比如,获取随机的合法 ...
- tcping扫描所有端口_ping TCP端口的实用小工具tcping
原标题:ping TCP端口的实用小工具tcping ping 大家都很熟悉的ping 命令,属于网络层的ICMP协议,只能检查 IP 的连通性或网络连接速度, 无法检测IP的端口状态. telnet ...
- 发现一款程序员实用小工具
发现一款程序员实用小工具,用来解析 json 数据的! JSON Online Validator and Formatter - LINT JSON
最新文章
- MySQL 错误代码和消息
- Lambda省略格式Lambda使用前提
- php小于neq qe,PHP模板判断语句eq相等 ne、neq不相等, gt大于, lt小于
- 如何在宝塔面板启用 ASP.NET CORE 网站并自动申请 HTTPS 证书
- ibatis mysql 同时删多个表报错_MySQL中Multiple primary key defined报错的解决办法
- springMVC学习(7)-springMVC校验
- jquery-尺寸相关
- SQL优化老出错,那是你没弄明白MySQL解释计划
- qchart 坐标轴设置_「Qt」利用QChart实现实时动态的曲线数据展示
- 小蠓虫如何灭_怎样消灭蠓虫?
- 对职场橡皮人Say No(转)
- 千万不要手贱在win10系统上执行win7激活工具!!!
- MySQL统计每月数量并计算同比增长率
- crm系统是什么很棒ec实力_哪个CRM系统好
- Codeforces Contest 730 A Toda 2 —— 贪心
- 硬盘扇区数据结构分析
- 小德张-清朝最后一位首领太监
- 在预测中使用LSTM架构的最新5篇论文推荐
- 服务器不稳定降权多久会恢复,遇到网站降权你会怎么做?
- 普罗米修斯监控 Oracle,普罗米修斯监控实例
热门文章
- 牛顿下山法c语言_数值计算(二十九)修正牛顿法I求解方程的根
- SpringCloud学习之SpringCloudStream集成kafka
- 概率霍夫变换(Progressive Probabilistic Hough Transform)原理详解
- Xamarin只言片语3——Xamarin.Android下支付宝(Alipay SDK)使用
- LintCode-- Remove Linked List Elements
- HTML vs XHTML vs DHTML
- cv2.imread读取图像结果none_PyTorch 42.图像操作
- S5PV210体系结构与接口07:中断系统编程
- 使用def文件从dll导出和_declspec(dllexport)导出区别以及调用示例
- oracle11g服务端配置实例,Win7系统Oracle11g服务端和客户端连接数据库配置