博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 常用实用函数。。。。。。
阅读量:4579 次
发布时间:2019-06-08

本文共 7769 字,大约阅读时间需要 25 分钟。

 

javascript 正则表达式 

1.获取屏幕大小尺寸

/* 获取屏幕大小尺寸  */var getScreen = function () {    var screen = {        width: 0,        height: 0    };    //获取窗口宽度     if (window.innerWidth)        screen.width = window.innerWidth;    else if ((document.body) && (document.body.clientWidth))        screen.width = document.body.clientWidth;    //获取窗口高度     if (window.innerHeight)        screen.height = window.innerHeight;    else if ((document.body) && (document.body.clientHeight))        screen.height = document.body.clientHeight;    //通过深入Document内部对body进行检测,获取窗口大小     if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) {        screen.height = document.documentElement.clientHeight;        screen.width = document.documentElement.clientWidth;    }    screen.width = parseInt(screen.width);    screen.height = parseInt(screen.height);    return screen;};/*  obj to string*/var obj2str = function (o) {    var r = [];    if (typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";    if (typeof o == "undefined") return "";    if (typeof o == "object") {        if (o === null) return "null";        else if (!o.sort) {            for (var i in o)                r.push(i + ":" + obj2str(o[i]))            r = "{" + r.join() + "}"        } else {            for (var i = 0; i < o.length; i++)                r.push(obj2str(o[i]))            r = "[" + r.join() + "]"        }        return r;    }    return o.toString();};/* 获取指定的queryString*/var getQueryString = function (name) {    name = name.toLowerCase();    if (typeof (this.data) == "undefined") {        this.data = Array();    }    else {        for (d in this.data) {            arg = this.data[d].split(":");            if (arg[0] == name)                return arg[1];        }    }    var href = window.location.href.toLowerCase();    if (href.indexOf('?') == -1)        return null;    href = href.substr(href.indexOf('?') + 1, href.length);    p = href.indexOf(name + '=');    if (p == -1)        return null;    href = href.substr(p + name.length + 1, href.length);    p = href.indexOf('&');    if (p == -1) {        this.data.push(name + ":" + href);        return href;    }    else {        this.data.push(name + ":" + href.substring(0, p));        return href.substring(0, p);    }};

2.js正则表达式大全

/*js正则表达式大全*/var regService = {    /*    除数字的验证    */    isNumber: function (number) {        var re = /^[0-9]*$/;        if (!re.test(number)) {            return false;        }        return true;    },    /* 是否为url        包含:http、https、ftp、localhost:port及多级域名        地址必须带://    */    isURL: function (url) {        var strRegex = "^((https|http|ftp|rtsp|mms)?://)+"                + "("                + "(([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}"                + ")?" // first level domain- .com or .museum                  + "(:[0-9]{1,4})?" // 端口- :80                  + ")+" // 域名或user 必须出现                + "("                + "(/?)|" // a slash isn't required if there is no file name                  + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?"                + ")+$";        var re = new RegExp(strRegex);        if (re.test(url)) {            return true;        }        else {            return false;        }    },    /*    手机号码的验证(13开头、15开头、18开头,共11位)    */    isMobile: function (mobile) {        //var re = /^(13[0-9]|15[0|2|3|6|7|8|9]|18[5|8|9])\d{8}$/;        var re = /^0?(13[0-9]|14[57]|15[012356789]|17[0678]|18[0-9])[0-9]{8}$/;        if (!re.test(mobile)) {            return false;        }        return true;    },    /*    邮件地址的验证(包含@和.)    */    isEmail: function (email) {        //var re = /\w@\w*\.\w/;        var re = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;        if (!re.test(email)) {            return false;        }        return true;    },    /*    匹配中文 数字 字母 下划线      */    checkInput: function (str) {        var pattern = /^[\w\u4e00-\u9fa5]+$/gi;        if (pattern.test(str)) {            return false;        }        return true;    },    /*    验证是否为QQ 5-10位    */    isQQ: function (str) {        return (new RegExp(/^\+?[1-9][0-9]{4,9}$/).test(str.trim()));    },    /*    验证金钱 小数点前面最多12位(1位到12之间),小数点后最多4位(1到4位)小数点后更改为2位    */    isMoney: function (str) {        return (new RegExp(/^\d{1,12}(?:\.\d{1,2})?$/).test($.trim(str)));    },    /*    邮政编码的验证(开头不能为0,共6位)    */    isPostCode: function (postCode) {        var re = /^[1-9][0-9]{5}$/;        if (!re.test(postCode)) {            return false;        }        return true;    },    /*    根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。        地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。        出生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。        顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。        校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。    出生日期计算方法。        15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19或18,这样就包含了所有1800-1999年出生的人;        2000年后出生的肯定都是18位的了没有这个烦恼,至于1800年前出生的,那啥那时应该还没身份证号这个东东,⊙﹏⊙b汗...    下面是正则表达式:     出生日期1800-2099  (18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])     身份证正则表达式 /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i                 15位校验规则 6位地址编码+6位出生日期+3位顺序号     18位校验规则 6位地址编码+8位出生日期+3位顺序号+1位校验位      校验位规则     公式:∑(ai×Wi)(mod 11)……………………………………(1)                    公式(1)中:                     i----表示号码字符从由至左包括校验码在内的位置序号;                     ai----表示第i位置上的号码字符值;                     Wi----示第i位置上的加权因子,其数值依据公式Wi=2^(n-1)(mod 11)计算得出。                    i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1                    Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1    ----------------------------------------------        身份证号合法性验证         支持15位和18位身份证号        支持地址编码、出生日期、校验位验证    */    isIdentityCode: function (code) {        var city = { 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: "国外 " };        var pass = true;        if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[0-1])\d{3}(\d|X)$/i.test(code)) {            // 身份证号格式错误            pass = false;        }        else if (!city[code.substr(0, 2)]) {            // 地址编码错误            pass = false;        }        else {            //18位身份证需要验证最后一位校验位            if (code.length == 18) {                code = code.split('');                //∑(ai×Wi)(mod 11)                //加权因子                var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];                //校验位                var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];                var sum = 0;                var ai = 0;                var wi = 0;                for (var i = 0; i < 17; i++) {                    ai = code[i];                    wi = factor[i];                    sum += ai * wi;                }                var last = parity[sum % 11];                if (parity[sum % 11] != code[17]) {                    // 校验位错误                    pass = false;                }            }        }        return pass;    }};

 

转载于:https://www.cnblogs.com/laopo/p/5488699.html

你可能感兴趣的文章
一个程序员的时间管理
查看>>
sort-归并排序
查看>>
django 快速实现完整登录系统(cookie)
查看>>
.NET中的out和ref关键字
查看>>
Python之ftp服务器
查看>>
KMP预处理
查看>>
AI2(App Inventor 2)离线版服务器(2019.04.28更新)
查看>>
oracle的wm_concat函数实现行转列
查看>>
微软对外披露两个0day漏洞详情
查看>>
C语 三子棋小游戏
查看>>
[BZOJ 1861] 书架
查看>>
Unity NGUI 批量点击跳转场景
查看>>
送给毕业生的一个学习建议
查看>>
基于redis+lua实现高并发场景下的秒杀限流解决方案
查看>>
Oracle 块修改跟踪 (Block Change Tracking) 说明
查看>>
阿里云 Redis 服务遇到的问题
查看>>
Jwt Token 安全策略使用 ECDSA 椭圆曲线加密算法签名/验证
查看>>
Window2008通过web.config进行限制ip访问
查看>>
浅析门户网站体育赛事CDN加速解决方案
查看>>
启动/关闭xp_cmdshell
查看>>