【收藏】60个前端常用的实现方法-上篇
小职 2021-04-27 来源 : 阅读 727 评论 0

摘要:本篇主要介绍了前端常用的实现方法,希望对你有所帮助。

本篇主要介绍了前端常用的实现方法,希望对你有所帮助。

【收藏】60个前端常用的实现方法-上篇

1、邮箱

export const isEmail = (s) => {

    return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)

}


2、手机号码

export const isMobile = (s) => {

    return /^1[0-9]{10}$/.test(s)

}


3、电话号码


export const isPhone = (s) => {

    return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)

}



4、是否url地址


export const isURL = (s) => {

    return /^http[s]?:\/\/.*/.test(s)

}


5、是否字符串

export const isString = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'String'

}


6、是否数字


export const isNumber = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Number'

}


7、是否boolean


export const isBoolean = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Boolean'

}


8、是否函数


export const isFunction = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Function'

}


9、是否为null


export const isNull = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Null'

}


10、是否undefined


export const isUndefined = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Undefined'

}


11、是否对象


export const isObj = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Object'

}


12、是否数组


export const isArray = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Array'

}


13、是否时间

export const isDate = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Date'

}


14、是否正则

export const isRegExp = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'RegExp'

}


15、是否错误对象

export const isError = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Error'

}


16、是否Symbol函数

export const isSymbol = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Symbol'

}


17、是否Promise对象


export const isPromise = (o) => {

    return Object.prototype.toString.call(o).slice(8, -1) === 'Promise'

}


18、是否Set对象

 export const isSet = (o) => {

      return Object.prototype.toString.call(o).slice(8, -1) === 'Set'

}

export const ua = navigator.userAgent.toLowerCase();


19、是否是微信浏览器


export const isWeiXin = () => {

    return ua.match(/microMessenger/i) == 'micromessenger'

}


20、是否是移动端

export const isDeviceMobile = () => {

    return /android|webos|iphone|ipod|balckberry/i.test(ua)

}


21、是否是QQ浏览器

export const isQQBrowser = () => {

    return !!ua.match(/mqqbrowser|qzone|qqbrowser|qbwebviewtype/i)

}


22、是否是爬虫

export const isSpider = () => {       return/adsbot|googlebot|bingbot|msnbot|yandexbot|baidubot|robot|careerbot|seznambot|bot|baiduspider|jikespider|symantecspider|scannerlwebcrawler|crawler|360spider|sosospider|sogou web sprider|sogou orion spider/.test(ua)

}


23、是否ios

export const isIos = () => {

    var u = navigator.userAgent;

    if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {  //安卓手机

        return false    } else if (u.indexOf('iPhone') > -1) {//苹果手机

        return true

    } else if (u.indexOf('iPad') > -1) {//iPad

        return false

    } else if (u.indexOf('Windows Phone') > -1) {//winphone手机

        return false

    } else {

        return false

    }

}


24、是否为PC端

export const isPC = () => {

    var userAgentInfo = navigator.userAgent;

    var Agents = ["Android", "iPhone",

        "SymbianOS", "Windows Phone", 

       "iPad", "iPod"];

    var flag = true;

   for (var v = 0; v < Agents.length; v++) {

        if (userAgentInfo.indexOf(Agents[v]) > 0) {

            flag = false;

            break;

        }

    }

    return flag;

}


25、去除html标签

export const removehtmltag = (str) => {

    return str.replace(/<[^>]+>/g, '')

}


26、获取url参数

export const getQueryString = (name) => {

    const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');

    const search = window.location.search.split('?')[1] || '';

    const r = search.match(reg) || [];

    return r[2];

}


27、动态引入js

export const injectScript = (src) => {

    const s = document.createElement('script');

    s.type = 'text/JavaScript';

    s.async = true;

    s.src = src;

    const t = document.getElementsByTagName('script')[0];

    t.parentNode.insertBefore(s, t);

}


28、根据url地址下载

export const download = (url) => {

    var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

    var isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; 

   if (isChrome || isSafari) {

        var link = document.createElement('a'); 

       link.href = url;

        if (link.download !== undefined) {

            var fileName = url.substring(url.lastIndexOf('/') + 1, url.length);

            link.download = fileName;

        }

        if (document.createEvent) {

            var e = document.createEvent('MouseEvents');

            e.initEvent('click', true, true);

            link.dispatchEvent(e);

            return true;

        }

    }

    if (url.indexOf('?') === -1) {

        url += '?download';

    }

    window.open(url, '_self');

    return true;

}


29、el是否包含某个class


export const hasClass = (el, className) => {

    let reg = new RegExp('(^|\\s)' + className + '(\\s|$)')

    return reg.test(el.className)

}


30、el添加某个class


export const addClass = (el, className) => {

    if (hasClass(el, className)) {

        return

    }

    let newClass = el.className.split(' ')

    newClass.push(className)

    el.className = newClass.join(' ')

}



我是小职,记得找我

✅ 解锁高薪工作

✅ 免费获取基础课程·答疑解惑·职业测评

【收藏】60个前端常用的实现方法-上篇

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程