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;
}
};

javascript 常用实用函数。。。。。。的更多相关文章

  1. javascript常用字符串函数和本地存储

    concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a.conca ...

  2. 手写JavaScript常用的函数

    一.bind.call.apply函数的实现 改变函数的执行上下文中的this指向,但不执行该函数(位于Function构造函数的原型对象上的方法) Function.prototype.myBind ...

  3. php常用实用函数整理

    1.PHP加密解密 PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密. function encryptDecrypt ...

  4. JavaScript常用工具函数

    检测数据是不是除了symbol外的原始数据 function isStatic(value) { return ( typeof value === 'string' || typeof value ...

  5. JavaScript 常用数组函数方法专题

    1. 由字符串生成数组 split() 分割字符串,并将分割的部分作为一个元素保存在一个新建的数组中. var str1 = "this is an emample to using the ...

  6. javascript常用功能函数

    特殊字符转义:将<, >, &, “进行转义 function escape(str){ return str.replace(/[<>"&]/g,f ...

  7. javascript常用工具函数总结(不定期补充)未指定标题的文章

    前言 以下代码来自:自己写的.工作项目框架上用到的.其他框架源码上的.网上看到的. 主要是作为工具函数,服务于框架业务,自身不依赖于其他框架类库,部分使用到es6/es7的语法使用时要注意转码 虽然尽 ...

  8. Javascript 常用函数【3】

    jquery选中radio //如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_category").each(function() { if ($(t ...

  9. JavaScript常用函数

    JavaScript常用函数 常规函数 数组函数 日期函数 数学函数 字符串函数 常规函数 (1)alert函数:显示一个警告对话框,包括一个OK按钮.(alert("输入错误") ...

随机推荐

  1. [troubleshoot][archlinux][X] GPU HANG

    前言:如下内容已经是在hang完大概半个多月后了,当时想写,一直没过来写,写blog果然也是已经花费时间的事情. 最近一直在休假,电脑的使用频率也不多.后来还是为了生活,不情愿的去开始上班了,上班的第 ...

  2. yii2知识点详解

    yii2错误处理机制: 错误处理器将所有非致命PHP错误转换成可获取异常, 也就是说可以使用如下代码处理PHP错误 use Yii; use yii\base\ErrorException; try ...

  3. iOS仿网易新闻栏目拖动重排添加删除效果

    仿网易新闻栏目选择页面的基本效果,今天抽了点时间教大家如何实现UICollectionView拖动的效果! 其实实现起来并不复杂,这里只是基本的功能,没有实现细节上的修改,连UI都是丑丑的样子,随手画 ...

  4. substr mb_substr mbstrct 的用法区别

    1.substr遇到中文会出问题,用于截取英文字符 2.mb_substr() 按字符截取字符串,需要开启php_mbstring.dll <?php echo mb_substr(, , 'u ...

  5. TestLink学习八:TestLink1.9.13与Mantis1.2.19集成

    简述 在TestLink和bug 管理系统集成必须具备以下特点: 1. 在TestLink和bug 管理系统之间所有的信息交流都是在数据库中完成. 2. TestLink(现在版本)既不能发信息给bu ...

  6. NSArray倒序

    NSArray倒序 NSArray *tmparr = [[upLoadImageArr reverseObjectEnumerator] allObjects]; ios 正则表达式替换 . 不可变 ...

  7. ios -- 教你如何轻松学习Swift语法(二)

    前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦.      一.可选类型(重点内容)   1.什么是可选类型?        1.1在OC开 ...

  8. s3c2440 mpll

    S3C2440有两个PLL(phase locked loop)一个是MPLL,一个是UPLL.MPLL用于CPU及其他外围器件,UPLL用于USB.用于产生FCLK, HCLK, PCLK三种频率, ...

  9. [转] java集合详解

    结合框架体系应该最重要的是如何灵活利用三种接口,set,map,list,他们如何遍历,各有什么特征,怎么样去处理,这是关键,在这个基础上再去掌握在什么场合用什么类型的接口.比如说list和set,s ...

  10. [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...