html中let函数,前端开发中经常使用的工具函数

在日常开发中经常会用到的工具函数

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;

}

版本号对比//传入要对比的版本号,一般前面一个传入当前的版本号,后面一个写上要对比的版本号

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<-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 XS

var isIPhoneX =

/iphone/gi.test(window.navigator.userAgent) &&

window.devicePixelRatio &&

window.devicePixelRatio === 3 &&

window.screen.width === 375 &&

window.screen.height === 812;

// iPhone XS Max

var isIPhoneXSMax =

/iphone/gi.test(window.navigator.userAgent) &&

window.devicePixelRatio &&

window.devicePixelRatio === 3 &&

window.screen.width === 414 &&

window.screen.height === 896;

// iPhone XR

var 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;

}

input框限制只能输入中文const input = document.querySelector('input[type="text"]')

const clearText = target => {

const {

value

} = target

target.value = value.replace(/[^u4e00-u9fa5]/g, '')

}

input.onfocus = ({target}) => {

clearText(target)

}

input.onkeyup = ({target}) => {

clearText(target)

}

input.onblur = ({target}) => {

clearText(target)

}

input.oninput = ({target}) => {

clearText(target)

}

去除字符串中的html代码const removehtml = (str = '') => str.replace(/]*>/ig, '')

console.log(removehtml('

哈哈哈哈')) // 哈哈哈哈

禁止网页复制粘贴const html = document.querySelector('html')

html.oncopy = () => false

html.onpaste = () => false

判断是否是移动端const isMobile = () => 'ontouchstart' in window

字符串前面空格去除与替换const trimStart = str => str.replace(new RegExp('^([s]*)(.*)$'), '$2')

console.log(trimStart(' abc ')) // abc

console.log(trimStart('123 ')) // 123

字符串后面空格去除与替换const trimEnd = str => str.replace(new RegExp('^(.*?)([s]*)$'), '$1')

console.log(trimEnd(' abc ')) // abc

console.log(trimEnd('123 ')) // 123

函数柯里化const curring = fn => {

const { length } = fn

const curried = (...args) => {

return (args.length >= length

? fn(...args)

: (...args2) => curried(...args.concat(args2)))

}

return curried

}

const listMerge = (a, b, c) => [a, b, c]

const curried = curring(listMerge)

console.log(curried(1)(2)(3)) // [1, 2, 3]

console.log(curried(1, 2)(3)) // [1, 2, 3]

console.log(curried(1, 2, 3)) // [1, 2, 3]

-1>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值