JS判断函数总结

  • 前言
  • 一、邮箱
  • 二、手机号码
  • 三、URL地址
  • 四、身份证
  • 五、数据类型
    • 1.String
    • 2.Number
    • 3.Boolean
    • 4.Function
    • 5.Null
    • 6.Undefined
    • 7.Object
    • 8.Array
    • 9.Date
    • 10.RegExp
    • 11.Error
    • 12.Symbol
    • 13.Set
  • 六、浏览器
    • 1.微信浏览器
    • 2.移动端
    • 3.QQ浏览器
    • 4.爬虫
    • 5.IOS
    • 6.PC

前言

随着项目的积累,将平时用到的函数做了总结,抽出了日常用到的判断函数,仅供大家参考,有问题还望指正,谢谢大家。


一、邮箱

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

二、手机号码

 export const isMobile = (n) => {return /^1[345789][0-9]{9}$/.test(n)}

三、URL地址

 export const isURL= (s) => {// 协议://(ftp的登录信息)[IP|域名](:端口号)(/或?请求参数)var regStr = '^((https|http|ftp|rtsp|mms)?://)' // (https或http或ftp):// 可有可无+ '?(([0-9a-z_!~*\'().&=+$%-]+: )?[0-9a-z_!~*\'().&=+$%-]+@)?' //ftp的user@ + '(([0-9]{1,3}.){3}[0-9]{1,3}' // IP形式的URL- 199.194.52.184 + '|' // 允许IP和DOMAIN(域名) + '([0-9a-z_!~*\'()-]+.)*' // 域名- www. + '([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].' // 二级域名 + '[a-z]{2,6})' // 顶级域名- 1-6位英文+ '(:[0-9]{1,4})?' // 端口- :80 1-5位数字+ '((/?)|' // url无参数结尾 - 斜杆或这没有+ '(/[0-9a-zA-Z_!~*\'().;?:@&=+$,%#-]+)+/?)$' // 请求参数结尾- 英文或数字和[]内的各种字符var reg = new RegExp(regStr)return reg.test(encodeURI(s))}

四、身份证

 export const isCardID = (sId) => {if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(sId)) {console.log('你输入的身份证长度或格式错误')return false}// 严格的身份证校验// 身份证城市const aCity = {11: "北京",12: "天津",13: "河北",14: "山西",15: "内蒙古",21: "辽宁",22: "吉林",23: "黑龙江",31: "上海",32: "江苏",33: "浙江",34: "安徽",35: "福建",36: "江西",37: "山东",41: "河南",42: "湖北",43: "湖南",44: "广东",45: "广西",46: "海南",50: "重庆",51: "四川",52: "贵州",53: "云南",54: "西藏",61: "陕西",62: "甘肃",63: "青海",64: "宁夏",65: "新疆",71: "台湾",81: "香港",82: "澳门",91: "国外"}if (!aCity[parseInt(sId.substr(0, 2))]) {console.log('你的身份证地区非法')return false}// 出生日期验证const sBirthday = (sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2))).replace(/-/g, "/"),d = new Date(sBirthday)if (sBirthday !== (d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate())) {console.log('身份证上的出生日期非法')return false}// 身份证号码校验let sum = 0,weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],codes = "10X98765432"for (let i = 0; i < sId.length - 1; i++) {sum += sId[i] * weights[i]}const last = codes[sum % 11] // 计算出来的最后一位身份证号码if (sId[sId.length - 1] !== last) {console.log('你输入的身份证号非法')return false}return true}

五、数据类型

1.String

 export const isString = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'String'}

2.Number

 export const isNumber = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Number'}

3.Boolean

 export const isBoolean = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Boolean'}

4.Function

 export const isFunction = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Function'}

5.Null

 export const isNull = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Null'}

6.Undefined

 export const isUndefined = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Undefined'}

7.Object

 export const isObject = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Object'}

8.Array

 export const isArray = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Array'}

9.Date

 export const isDate = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Date'}

10.RegExp

 export const isRegExp = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'RegExp'}

11.Error

 export const isError = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Error'}

12.Symbol

 export const isSymbol = (o) => {return Object.prototype.toString.call(o).slice(8, -1) === 'Symbol'}

13.Set

 export const isSet = (o) => { // 是否Set对象return Object.prototype.toString.call(o).slice(8, -1) === 'Set'}

六、浏览器

1.微信浏览器

 export const isWeiXin = () => {return !!navigator.userAgent.toLowerCase().match(/microMessenger/i)  // === 'micromessenger'}

2.移动端

 export const isDeviceMobile = () => {return /android|webos|iphone|ipod|balckberry/i.test(navigator.userAgent.toLowerCase())}

3.QQ浏览器

 export const isQQBrowser = () => {return !!navigator.userAgent.toLowerCase().match(/mqqbrowser|qzone|qqbrowser|qbwebviewtype/i)}

4.爬虫

 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(navigator.userAgent.toLowerCase())}

5.IOS

 export const isIos = () => {const u = navigator.userAgentif (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {  // 安卓手机return false} else if (u.indexOf('iPhone') > -1) { // 苹果手机return true} else if (u.indexOf('iPad') > -1) { // iPadreturn false} else if (u.indexOf('Windows Phone') > -1) { // winPhone手机return false} else {return false}}

6.PC

 export const isPC = () => { // 是否为PC端const u = navigator.userAgentconst Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']let flag = truefor (let v = 0; v < Agents.length; v++) {if (u.indexOf(Agents[v]) > 0) {flag = falsebreak}}return flag}

JS中常用的判断函数相关推荐

  1. js中常用的Math函数方法

     1.Math.abs():  返回绝对值 console.log(Math.abs(-1));//1 console.log(Math.abs('1.2'));//1.2,对于字符串会先转换成num ...

  2. js中常用的数组和字符串方法

    一:js中常用的数组方法 <script>//函数声明式中的方法const arr=[1,3,6,9,15,19,16];//函数的所有方法 map(),reduce(),filter() ...

  3. php的正则表达式函数,php中常用的正则表达式函数

    php中常用的正则表达式函数 * preg_match() * preg_match_all() * preg_replace() * preg_filter() * preg_grep() * pr ...

  4. JS中常用正则转换和信息验证的封装(80个)

    JS中常用正则转换和信息验证的封装(80个) 邮箱 手机号码 电话号码 是否url地址 是否字符串 是否数字 是否boolean 是否函数 是否为null 是否undefined 是否对象 是否数组 ...

  5. JS中,如何判断一个被转换的数是否是NaN

    var x="abc";//isNaN()函数判断是否是NaNif (isNaN(parseInt(x))) {alert("非数字");} else{aler ...

  6. OpenGL中常用的 GLUT 函数

    GLUT函数说明 一.初始化 void glutInit(int* argc,char** argv) 这个函数用来初始化GLUT库.对应 main 函数的形式应是: int main(int arg ...

  7. 总结JS中常用的数组的方法大全

    总结JS中常用的数组方法 JS中常用的数组方法总结 数组(Array)是一种复杂的数据类型,它属于Object(对象)类型,用来将一组数组合在一起,通过一个变量就可以访问一组数据.在使用数组时,经常会 ...

  8. js中三个判断的应用——if else、三元运算符、switch case

    js中三个判断的应用--if else.三元运算符.switch case 区别 if .else if.else 是最常用的判断,可以解决js中的所有的判断需求 三元运算符应用于简单的if else ...

  9. js中常用的对象—String的属性和方法

    今天说一下,js中常用的内置对象--String对象 它有以下几个常用的属性: length prototype 有以下几个常用的方法: parseInt()转换为数字 parseFloat()转换为 ...

最新文章

  1. 计算圆弧与矩形相交_GIS算法:3_拓扑空间关系计算模型DE-9IM
  2. 在Qt中用默认程序打开文件
  3. js控制只能输入数字和小数点
  4. P4383-[八省联考2018]林克卡特树【wqs二分,树形dp】
  5. TestContainers和Spring Boot
  6. 计算机组成原理,计算机系统概论,计算机基本组成
  7. 牛客15666 又见斐波那契(矩阵快速幂)
  8. Python之路(运算符)
  9. 中职计算机专业学Excel,2013年中职计算机应用专业中文Excel电子表格处理实际操作练习.doc...
  10. android小米 市场下载地址,小米手机下载的软件在哪里?小米应用商店下载路径介绍...
  11. 怎樣制作线段动画_20技巧教你如何简单制作动画
  12. 基于OSINT的信息收集思路
  13. 切西瓜法实现微信抢红包功能
  14. 北大计算机考研822 911区别,北大考研成绩“上热搜”,4位神仙“打架”,旁人:倒吸一口气!...
  15. 虎跃后台管理系统,数据分发+授权管理+权限管理
  16. 倍福TwinCAT(贝福Beckhoff)应用教程13.1 TwinCAT控制松下伺服 NC高级
  17. [云计算] 云使能技术包括哪些技术组件?
  18. FastCAE 添加多语言
  19. html表格类似excel固定表头样式,(转)supertable像excel那样固定table的表头和第一列...
  20. 【Vue知识点】——Vue2和Vue3的数据劫持

热门文章

  1. 3225 十进制到六进制
  2. 12、第三课---C++单位换算
  3. Android TextView带背景图片和自定义边框
  4. 45个android实例源码
  5. PhpSpreadsheet怎么设置单元格边框
  6. java flappy bird_Java实例---flappy-bird实例解析
  7. web 常用的几种字体_3种免费Web字体服务比较
  8. 计算机视觉——Bag Of features图像检索
  9. NDN新增tag的方案
  10. 【1 - 决策树 - 原理部分】菜菜sklearn机器学习