Javascript 总结(常用工具类的封装)

classTypeFn{

isString(o) {//是否字符串

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

    }

isNumber(o) {//是否数字

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

    }

isBoolean(o) {//是否boolean

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

    }

isFunction(o) {//是否函数

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

    }

isNull(o) {//是否为null

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

    }

isUndefined(o) {//是否undefined

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

    }

isObj(o) {//是否对象

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

    }

isArray(o) {//是否数组

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

    }

isDate(o) {//是否时间

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

    }

isRegExp(o) {//是否正则

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

    }

isError(o) {//是否错误对象

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

    }

isSymbol(o) {//是否Symbol函数

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

    }

isPromise(o) {//是否Promise对象

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

    }

isSet(o) {//是否Set对象

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

    }

isFalse(o) {

if(o==''||o==undefined||o==null||o=='null'||o=='undefined'||o==0||o==false||o==NaN)returntrue

returnfalse

    }

isTrue(o) {

return!this.isFalse(o)

    }

isIos() {

varu=navigator.userAgent;

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

//return "Android";

returnfalse

}elseif(u.indexOf('iPhone')>-1) {//苹果手机

//return "iPhone";

returntrue

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

//return "iPad";

returnfalse

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

//return "Windows Phone";

returnfalse

}else{

returnfalse

        }

    }

isPC() {//是否为PC端

varuserAgentInfo=navigator.userAgent;

varAgents=["Android","iPhone",

"SymbianOS","Windows Phone",

"iPad","iPod"];

varflag=true;

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

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

flag=false;

break;

            }

        }

returnflag;

    }

browserType(){

varuserAgent=navigator.userAgent;//取得浏览器的userAgent字符串

varisOpera=userAgent.indexOf("Opera")>-1;//判断是否Opera浏览器

varisIE=userAgent.indexOf("compatible")>-1&&userAgent.indexOf("MSIE")>-1&&!isOpera;//判断是否IE浏览器

varisIE11=userAgent.indexOf('Trident')>-1&&userAgent.indexOf("rv:11.0")>-1;

varisEdge=userAgent.indexOf("Edge")>-1&&!isIE;//判断是否IE的Edge浏览器

varisFF=userAgent.indexOf("Firefox")>-1;//判断是否Firefox浏览器

varisSafari=userAgent.indexOf("Safari")>-1&&userAgent.indexOf("Chrome")==-1;//判断是否Safari浏览器

varisChrome=userAgent.indexOf("Chrome")>-1&&userAgent.indexOf("Safari")>-1;//判断Chrome浏览器

if(isIE) {

varreIE=newRegExp("MSIE (\\d+\\.\\d+);");

reIE.test(userAgent);

varfIEVersion=parseFloat(RegExp["$1"]);

if(fIEVersion==7)return"IE7"

elseif(fIEVersion==8)return"IE8";

elseif(fIEVersion==9)return"IE9";

elseif(fIEVersion==10)return"IE10";

elsereturn"IE7以下"//IE版本过低

        }

if(isIE11)return'IE11';

if(isEdge)return"Edge";

if(isFF)return"FF";

if(isOpera)return"Opera";

if(isSafari)return"Safari";

if(isChrome)return"Chrome";

    }

checkStr(str,type) {

switch(type) {

case'phone'://手机号码

return/^1[3|4|5|6|7|8][0-9]{9}$/.test(str);

case'tel'://座机

return/^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str);

case'card'://身份证

return/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str);

case'pwd'://密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线

return/^[a-zA-Z]\w{5,17}$/.test(str)

case'postal'://邮政编码

return/[1-9]\d{5}(?!\d)/.test(str);

case'QQ'://QQ号

return/^[1-9][0-9]{4,9}$/.test(str);

case'email'://邮箱

return/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str);

case'money'://金额(小数点2位)

return/^\d*(?:\.\d{0,2})?$/.test(str);

case'URL'://网址

return/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(str)

case'IP'://IP

return/((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(str);

case'date'://日期时间

return/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(str)||/^(\d{4})\-(\d{2})\-(\d{2})$/.test(str)

case'number'://数字

return/^[0-9]$/.test(str);

case'english'://英文

return/^[a-zA-Z]+$/.test(str);

case'chinese'://中文

return/^[\u4E00-\u9FA5]+$/.test(str);

case'lower'://小写

return/^[a-z]+$/.test(str);

case'upper'://大写

return/^[A-Z]+$/.test(str);

case'HTML'://HTML标记

return/<("[^"]*"|'[^']*'|[^'">])*>/.test(str);

default:

returntrue;

        }

    }

//严格的身份证校验

isCardID(sId) {

if(!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(sId)) {

alert('你输入的身份证长度或格式错误')

returnfalse

        }

//身份证城市

varaCity={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))]) {

alert('你的身份证地区非法')

returnfalse

        }

//出生日期验证

varsBirthday=(sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2))).replace(/-/g,"/"),

d=newDate(sBirthday)

if(sBirthday!=(d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate())) {

alert('身份证上的出生日期非法')

returnfalse

        }

//身份证号码校验

varsum=0,

weights=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],

codes="10X98765432"

for(vari=0; i<sId.length-1; i++) {

sum+=sId[i]*weights[i];

        }

varlast=codes[sum%11];//计算出来的最后一位身份证号码

if(sId[sId.length-1]!=last) {

alert('你输入的身份证号非法')

returnfalse

        }


returntrue

    }

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容