JS中常用的判断函数
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中常用的判断函数相关推荐
- js中常用的Math函数方法
1.Math.abs(): 返回绝对值 console.log(Math.abs(-1));//1 console.log(Math.abs('1.2'));//1.2,对于字符串会先转换成num ...
- js中常用的数组和字符串方法
一:js中常用的数组方法 <script>//函数声明式中的方法const arr=[1,3,6,9,15,19,16];//函数的所有方法 map(),reduce(),filter() ...
- php的正则表达式函数,php中常用的正则表达式函数
php中常用的正则表达式函数 * preg_match() * preg_match_all() * preg_replace() * preg_filter() * preg_grep() * pr ...
- JS中常用正则转换和信息验证的封装(80个)
JS中常用正则转换和信息验证的封装(80个) 邮箱 手机号码 电话号码 是否url地址 是否字符串 是否数字 是否boolean 是否函数 是否为null 是否undefined 是否对象 是否数组 ...
- JS中,如何判断一个被转换的数是否是NaN
var x="abc";//isNaN()函数判断是否是NaNif (isNaN(parseInt(x))) {alert("非数字");} else{aler ...
- OpenGL中常用的 GLUT 函数
GLUT函数说明 一.初始化 void glutInit(int* argc,char** argv) 这个函数用来初始化GLUT库.对应 main 函数的形式应是: int main(int arg ...
- 总结JS中常用的数组的方法大全
总结JS中常用的数组方法 JS中常用的数组方法总结 数组(Array)是一种复杂的数据类型,它属于Object(对象)类型,用来将一组数组合在一起,通过一个变量就可以访问一组数据.在使用数组时,经常会 ...
- js中三个判断的应用——if else、三元运算符、switch case
js中三个判断的应用--if else.三元运算符.switch case 区别 if .else if.else 是最常用的判断,可以解决js中的所有的判断需求 三元运算符应用于简单的if else ...
- js中常用的对象—String的属性和方法
今天说一下,js中常用的内置对象--String对象 它有以下几个常用的属性: length prototype 有以下几个常用的方法: parseInt()转换为数字 parseFloat()转换为 ...
最新文章
- 计算圆弧与矩形相交_GIS算法:3_拓扑空间关系计算模型DE-9IM
- 在Qt中用默认程序打开文件
- js控制只能输入数字和小数点
- P4383-[八省联考2018]林克卡特树【wqs二分,树形dp】
- TestContainers和Spring Boot
- 计算机组成原理,计算机系统概论,计算机基本组成
- 牛客15666 又见斐波那契(矩阵快速幂)
- Python之路(运算符)
- 中职计算机专业学Excel,2013年中职计算机应用专业中文Excel电子表格处理实际操作练习.doc...
- android小米 市场下载地址,小米手机下载的软件在哪里?小米应用商店下载路径介绍...
- 怎樣制作线段动画_20技巧教你如何简单制作动画
- 基于OSINT的信息收集思路
- 切西瓜法实现微信抢红包功能
- 北大计算机考研822 911区别,北大考研成绩“上热搜”,4位神仙“打架”,旁人:倒吸一口气!...
- 虎跃后台管理系统,数据分发+授权管理+权限管理
- 倍福TwinCAT(贝福Beckhoff)应用教程13.1 TwinCAT控制松下伺服 NC高级
- [云计算] 云使能技术包括哪些技术组件?
- FastCAE 添加多语言
- html表格类似excel固定表头样式,(转)supertable像excel那样固定table的表头和第一列...
- 【Vue知识点】——Vue2和Vue3的数据劫持