//jq-util.js
$.extend({
Util:{
/* 浏览器 */
browser:{
IE: !!document.all,
IE6: !!document.all && !window.XMLHttpRequest,
IE7: !!document.all && /msie 7.0/gi.test(window.navigator.appVersion),
IE8: !!document.all && /msie 8.0/gi.test(window.navigator.appVersion),
Firefox: /firefox/gi.test(window.navigator.userAgent),
Opera: /opera/gi.test(window.navigator.userAgent),
Chrome: /Chrom/gi.test(window.navigator.userAgent)
},
/*去除字符串首尾空格的方法*/
trim:function(str){
return str.trim ? str.trim():str.replace(/^\s+|\s+$/g,"");
},
/*获取地址栏参数
* key:要查询的字段,缺省返回地址栏所有数据
* */
getQueryString: function (key) {
var search=window.location.search;
if(search.length<1){
return false;
}
if(key && search.indexOf(key)<0){
return false;
}
search=search.substring(1);
search=decodeURI(search);
var searchArr=search.split("&");
var searchJSON={};
for(var i=0;i<searchArr.length;i++){
var item=searchArr[i].split("=");
searchJSON[item[0]]=item[1];
}
if(key){
return searchJSON[key];
}else {
return searchJSON;
}
},
/*获取随机数*/
getRandom:function (min,max) {
return Math.floor(Math.random() * (max-min))+min+1;
},
/*字符串截取*/
substring:function (str,length) {
if(str.length>length){
return str.substring(0,length)+"...";
}else {
return str;
}
}, /* 操作cookie*/
cookie: {
/* 设置 */
set:function (key,val,len,unit) {
if(!key || typeof val=='undefined'){
return false;
}
var cookieVal=val;
if(typeof cookieVal=='object'){
var valArr=[];
$.each(cookieVal,function (val_k,val_v) {
valArr.push(val_k+"="+val_v);
});
cookieVal=valArr.join("&");
}
var len=len || 1;
var unit=unit || "d";
var units={
"d":len*24*60*60*1000,
"h":len*60*60*1000,
"m":len*60*1000,
"s":len*1000
};
var dt = new Date();
dt.setTime(dt.getTime() + (units[unit]));
var expires = ";expires=" + dt.toGMTString();
var path=';path=/', domain='', secure='';
document.cookie=[key, '=', cookieVal, expires, path, domain, secure].join('');
},
/* 获取
* key:cookie的名称,必传参数
* name:cookie中的指定值,缺省默认返回cookie下所有值
* */
get:function (key,name) {
var cookieStr=document.cookie;
var start=cookieStr.indexOf(key+"=");
if(!key || start<0){
return false;
}
cookieStr=cookieStr.substring(start);
var end=cookieStr.indexOf(";");
if(end>=0){
cookieStr=cookieStr.substring(0,end);
}
cookieStr=cookieStr.substring(key.length+1);
cookieStr=decodeURIComponent(cookieStr);
var keyArr=cookieStr.split("&");
if(keyArr.length<2){
return keyArr[0];
}
var keyJSON={};
for(var i=0;i<keyArr.length;i++){
var item=keyArr[i].split("=");
keyJSON[item[0]]=item[1];
}
if(!name){
return keyJSON;
}else {
if(keyJSON.hasOwnProperty(name)){
return keyJSON[name];
}else {
return false;
}
}
},
/* 删除 */
del:function (key) {
this.set(key,"",-365);
}
}, /*
* window对象
*/
win: {
/*窗口跳转地址*/
href: function (url, time) {
var time = time || 0;
setTimeout(function () {
window.location.href = url;
}, time);
},
/*打开新窗口*/
open: function (url, time) {
var time = time || 0;
setTimeout(function () {
window.open(url);
}, time);
},
/*回退历史记录*/
back: function () {
window.history.back();
},
/*刷新当前页面*/
read: function (time) {
var time = time || 0;
setTimeout(function () {
window.location.reload();
}, time);
}
}, /**
* 校验
* @param {Object} key
* @param {Object} val
*/
verify:function (key,val) {
var regs={
/* 邮箱 */
"email":/^[0-9a-zA-Z_]+@[0-9a-zA-Z_]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$/,
/* 手机 */
"mobile":/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/,
/* 超链接 */
"url":/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i,
/* 身份证 */
"idCard":/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/,
/* 邮政编码 */
"postal":/^[1-9]\d{5}(?!\d)$/,
/* YY-MM-dd 格式日期 */
"date":/^[1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9]$/,
/* QQ */
"qq":/^[1-9][0-9]{4,9}$/,
/* 全部为数字 */
"numAll":/^\d+$/,
/* 适合的帐号 英文/数字 */
"befitName":/^[a-z0-9A-Z]+$/i,
/* 适合的密码 英文/数字/下划线 */
"befitPwd":/^[0-9a-zA-Z_]+$/,
/* 是否包含中文 */
"chinese":/[\u4e00-\u9fa5]/,
/* IP地址有效性 */
'ip':/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
};
return regs[key].test(val);
}, /**
* 不为空
* @param {Object} val
*/
isNotEmpty: function(val){
return !this.isEmpty(val);
}, /**
* 是否为空
* @param {Object} val
*/
isEmpty: function(val){
if ((val==null || typeof(val)=="undefined")|| (typeof(val)=="string"&&val==""&&val!="undefined")){
return true;
}else{
return false;
}
}, /**
* 去除元素内所有内容 strIds:"#id1,#id2,#id3"
* @param {Object} strIds
*/
emptyHtml: function(strIds){
try{
var ids = strIds.trim(",").split(",");
$(ids).each(function(){
var obj = $(this.toString());
if(obj.length>0){
$(obj).each(function(){
$(this).html("");
});
}else{
obj.html("");
}
});
}catch(ex){
throw new Error("js方法:【emptyHtml(strIds)】,error!");
}
}, /**
* 去除元素的值 strIds:"#id1,#id2,#id3"
* @param {Object} strIds
*/
emptyValue: function(strIds){
try{
var ids = strIds.trim(",").split(",");
$(ids).each(function(){
var obj = $(this.toString());
if(obj.length>0){
$(obj).each(function(){
$(this).val("");
});
}else{
obj.val("");
}
});
}catch(ex){
throw new Error("js方法:【emptyValue(strIds)】,error!");
}
}, /**
* 去除Textarea内所有内容 strIds:"#id1,#id2,#id3"
* @param {Object} strIds
*/
emptyTextarea: function(strIds){
try{
var ids = strIds.trim(",").split(",");
$(ids).each(function(){
var obj = $(this.toString());
if(obj.length>0){
$(obj).each(function(){
$(this).empty();
$(this).val("");
});
}else{
obj.empty();
obj.val("");
}
});
}catch(ex){
throw new Error("js方法:【emptyTextarea(strIds)】,error!");
}
}, /**
* 18位身份证简单校验
* @param {Object} idCard
*/
isSimpleIdCard18: function(idCard) {
return /^(?:1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5])\d{4}(?:1[89]|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}(?:\d|[xX])$/.test(idCard);
}, /**
* 15位身份证简单校验
* @param {Object} idCard
*/
isSimpleIdCard15: function(idCard) {
return /^(?:1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5])\d{4}\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}$/.test(idCard);
}, /**
* 18位身份证校验码校验
* @param {Object} idCard
*/
checkIdCard18Code: function(idCard) {
var multiplier = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var idDatas = idCard.split("");
var len = 17;
var sum = 0;
for(var i = 0; i < len; i++) {
sum += idDatas[i] * multiplier[i];
}
var remainder = sum % 11;
var checkCodeArr = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
var checkCode = checkCodeArr[remainder];
return checkCode === idCard[17];
}, /**
* 18位身份证严格校验
* @param {Object} idCard
*/
isIdCard18: function(idCard) {
//先校验格式
if(this.isSimpleIdCard18(idCard)) {
//校验日期时间是否合法
var dateStr = idCard.substr(6, 8);
var dateStrNew = dateStr.replace(/(\d{4})(\d{2})(\d{2})/, "$1/$2/$3");
var dateObj = new Date(dateStrNew);
var month = dateObj.getMonth() + 1;
if(parseInt(dateStr.substr(4, 2)) === month) {
return this.checkIdCard18Code(idCard);
}
}
return false;
}, /**
* 获取最大值
* @param {Object} arr
*/
getArrayMaxValue: function(arr) {
return Math.max.apply(Math, arr);
}, /**
* 获取最小值
* @param {Object} arr
*/
getArrayMinValue: function(arr) {
return Math.min.apply(Math, arr);
}, /**
* 判断某个值是否在数组
* @param {Object} arr
* @param {Object} ele
*/
inArray: function(arr, ele) {
var len = arr.length;
for(var i = 0; i < len; i++) {
if(ele === arr[i]) {
return true;
}
}
return false;
}, /**
* 删除数组元素
* @param {Object} arr
* @param {Object} val
*/
removeArrayValue: function (arr, val) {
for(var i = 0; i < arr.length; i++) {
if(arr[i] == val) {
arr.splice(i, 1);
break;
}
}
}, /**
* obj转为url参数
* @param {Object} baseUrl
* @param {Object} obj
*/
objToUrl: function(baseUrl, obj) {
var parameters = "";
var url = "";
for(var key in obj) {
parameters += key + "=" + obj[key] + "&";
}
parameters = parameters.replace(/&$/, "");
if(/\?$/.test(baseUrl)) {
url = baseUrl + parameters;
} else {
url = baseUrl.replace(/\/?$/, '?') + parameters;
}
return url;
}, /**
* url参数转obj,若一个字段有多个值的话,返回数组
* @param {Object} url
*/
parseQueryString: function(url) {
var obj = {};
if(url) {
url = url.replace(/#[^#]*$/, "");
var index = url.indexOf("?");
if(index != -1) {
var queryStr = url.substr(index + 1);
var marchResult = null;
var regex = /(\w+)(=([^&#]+)?)?/g;
while((marchResult = regex.exec(queryStr)) != null) {
if(marchResult[1] in obj) {
var values = obj[marchResult[1]];
if(values instanceof Array) {
values.push(marchResult[2] ? (marchResult[3] ? marchResult[3] : "") : null);
obj[marchResult[1]] = values;
} else {
var arr = [];
arr.push(values);
arr.push(marchResult[2] ? (marchResult[3] ? marchResult[3] : "") : null);
obj[marchResult[1]] = arr;
}
} else {
obj[marchResult[1]] = marchResult[2] ? (marchResult[3] ? marchResult[3] : "") : null;
}
}
}
}
return obj;
}, /**
* 获取当前时间
*/
getCurrentTime: function() {
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var day = today.getDate();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
var timeString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
return timeString;
}, /*
* 比较时间大小
* time1>time2 return 1
* time1<time2 return -1
* time1==time2 return 0
*/
compareTime: function(time1, time2) {
var d1 = time1;
var d2 = time2;
if((typeof d1) === "string") {
d1 = new Date(Date.parse(d1.replace(/-/g, "/")));
}
if((typeof d2) === "string") {
d2 = new Date(Date.parse(d2.replace(/-/g, "/")));
}
var t1 = d1.getTime();
var t2 = d2.getTime();
if(t1 === t2) {
return 0;
} else if(t1 > t2) {
return 1;
}
return -1;
}, /**
* 是否闰年
* @param {Object} year
*/
isLeapYear: function(year) {
return((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);
}, /*
* 距离现在几天的日期:负数表示今天之前的日期,0表示今天,整数表示未来的日期
* 如-1表示昨天的日期,0表示今天,2表示后天
*/
fromToday: function(days) {
var today = new Date();
today.setDate(today.getDate() + days);
var date = today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate();
return date;
}, /**
* 日期时间格式化
* @param {Object} dateTime 需要格式化的日期时间
* @param {String} pattern 格式化的模式,如yyyy-MM-dd hh(HH):mm:ss.S a k K E D F w W z Z
*/
formt: function(dateTime, pattern) {
var date = new Date(dateTime);
if(this.isEmpty(pattern)) {
return date.toLocaleString();
}
return pattern.replace(/([a-z])\1*/ig, function(matchStr, group1) {
var replacement = "";
switch(group1) {
case 'y': //年
replacement = date.getFullYear();
break;
case 'M': //月份
var month = date.getMonth() + 1;
replacement = (month < 10 && matchStr.length >= 2) ? "0" + month : month;
break;
case 'd': //月份的天数
var days = date.getDate();
replacement = (days < 10 && matchStr.length >= 2) ? "0" + days : days;
break;
case 'k': //一天中的小时数(1-24)
var hours24 = date.getHours();
replacement = hours24;
break;
case 'H': //24小时制,一天中的小时数(0-23)
var hours24 = date.getHours();
replacement = (hours24 < 10 && matchStr.length >= 2) ? "0" + hours24 : hours24;
break;
case 'm': //小时中的分钟数
var minutes = date.getMinutes();
replacement = (minutes < 10 && matchStr.length >= 2) ? "0" + minutes : minutes;
break;
case 's': //秒
var seconds = date.getSeconds();
replacement = (seconds < 10 && matchStr.length >= 2) ? "0" + seconds : seconds;
break;
case 'S': //毫秒
var milliSeconds = date.getMilliseconds();
replacement = milliSeconds;
break;
case 'w'://一年中的第几个星期
var days = this.dayOfTheYear(date);
replacement = Math.ceil(days / 7);
break;
case 'W': //一月中的第几星期(会根据实际情况来算)
var days = date.getDate();
replacement = Math.ceil(days / 7);
break;
case 'a': //上下午标识
var hours24 = date.getHours();
replacement = hours24 < 12 ? "\u4e0a\u5348" : "\u4e0b\u5348";
break;
case 'h': //12小时制 ,am/pm 中的小时数(1-12)
var hours12 = date.getHours() % 12 || 12; //0转为12
replacement = (hours12 < 10 && matchStr.length >= 2) ? "0" + hours12 : hours12;
break;
case 'K': //和h类型
var hours12 = date.getHours() % 12;
replacement = hours12;
break;
default:
break;
}
return replacement;
});
},
/**
* 计算一个日期是当年的第几天
* @param {Object} date
*/
dayOfTheYear: function(date) {
var obj = new Date(date);
var year = obj.getFullYear();
var month = obj.getMonth(); //从0开始
var days = obj.getDate();
var daysArr = [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
for(var i = 0; i < month; i++) {
days += daysArr[i];
}
return days;
},
/**
* 获得时区名和值
* @param {Object} dateObj
*/
getZoneNameValue: function(dateObj) {
var date = new Date(dateObj);
date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
var arr = date.toString().match(/([A-Z]+)([-+]\d+:?\d+)/);
var obj = {
'name': arr[1],
'value': arr[2]
};
return obj;
}, /**
* trim去掉字符串两边的指定字符,默去空格
* @param {Object} str
* @param {Object} tag
*/
strToTrim:function(str, tag){
if (!tag) {
tag = '\\s';
}else {
if (tag == '\\') {
tag = '\\\\';
} else if (tag == ',' || tag == '|' || tag == ';') {
tag = '\\' + tag;
}else {
tag = '\\s';
}
}
eval('var reg=/(^' + tag + '+)|(' + tag + '+$)/g;');
return this.replace(reg, '');
},
/**
* 将一个字符串用给定的字符变成数组
* @param {Object} str
* @param {Object} tag
*/
strToArray:function(str, tag){
if (str.indexOf(tag) != -1) {
return str.split(tag);
}else {
if (str != '') {
return [str.toString()];
}else {
return [];
}
}
}, /**
* 只留下数字(0123456789)
* @param {Object} str
*/
strToNumber:function(str){
return str.replace(/\D/g, "");
}, /**
* 字符串截取后面加入...
*/
interceptString: function(str, len) {
if(str.length > len) {
return str.substring(0, len) + "...";
} else {
return str;
}
},
/**
* 保留中文
* @param {Object} str
*/
strToCN:function(str){
var regEx = /[^\u4e00-\u9fa5\uf900-\ufa2d]/g;
return str.replace(regEx, '');
},
/**
* 转成int
* @param {Object} str
*/
strToInt:function(str){
var temp = str.replace(/\D/g, "");
return isNaN(parseInt(temp)) ? str.toString() : parseInt(temp);
}, /**
* 是否是以XX开头
* @param {Object} str
* @param {Object} tag
*/
strStartsWith:function(str, tag){
return str.substring(0, tag.length) == tag;
}, /**
* 是否是以XX结尾
* @param {Object} str
* @param {Object} tag
*/
strEndWith: function(str, tag){
return str.substring(str.length - tag.length) == tag;
}, /**
* 将str字符串的s1字符替换为s2字符
* @param {Object} str
* @param {Object} s1
* @param {Object} s2
*/
strReplaceAll:function(str, s1, s2){
return str.replace(new RegExp(s1,"gm"),s2);
}, /**
* 进入全屏模式, 判断各种浏览器,找到正确的方法
* @param {Object} element
*/
launchFullScreen: function (element) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
element.msRequestFullscreen();
}
return true;
}, /**
* 退出全屏模式
*/
exitFullScreen: function () {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
return false;
} }
}); jQuery.HashMap = function(param){
//定义长度
var length = 0;
//创建一个对象
var obj = new Object(); /**
* 判断Map是否为空
*/
this.isEmpty = function() {
return length == 0;
}; /**
* 判断对象中是否包含给定Key
*/
this.containsKey = function(key) {
return(key in obj);
}; /**
* 判断对象中是否包含给定的Value
*/
this.containsValue = function(value) {
for(var key in obj) {
if(obj[key] == value) {
return true;
}
}
return false;
}; /**
*向map中添加数据
*/
this.put = function(key, value) {
if(!this.containsKey(key)) {
length++;
}
obj[key] = value;
}; /**
* 根据给定的Key获得Value
*/
this.get = function(key) {
return this.containsKey(key) ? obj[key] : null;
}; /**
* 根据给定的Key删除一个值
*/
this.remove = function(key) {
if(this.containsKey(key) && (delete obj[key])) {
length--;
}
}; /**
* 获得Map中的所有Value
*/
this.values = function() {
var _values = new Array();
for(var key in obj) {
_values.push(obj[key]);
}
return _values;
}; /**
* 获得Map中的所有Key
*/
this.keySet = function() {
var _keys = new Array();
for(var key in obj) {
_keys.push(key);
}
return _keys;
}; /**
* 获得Map的长度
*/
this.size = function() {
return length;
}; /**
* 清空Map
*/
this.clear = function() {
length = 0;
obj = new Object();
}; /**
* 将HashMap转换为string的数据
*/
this.toString = function(){
$.Util.sear
}; /**
* 将HashMap转换为JSON格式的数据
*/
_map.toJson = function(){
return this[0];
};
}

最新文章

  1. 推荐一个ASP.NET网站内容管理系统源码
  2. C++ 在Windows下截取整个屏幕 和 指定句柄窗口的屏幕
  3. Android Intent的几种用法全面总结
  4. 星号代替数字 js语句
  5. H5之canvas简单入门
  6. Unity3D之Character Controller(CC)与GameObject的碰撞方法
  7. PHP设计模式之:策略模式
  8. 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
  9. Caused by: java.lang.NullPointerException, java.lang.reflect.InvocationTargetExc
  10. 如何编写Spring-Boot自动配置
  11. CentOS通过yum安装php7.0
  12. 《javascript设计模式与开发实践》阅读笔记(14)—— 中介者模式
  13. bzoj3963[WF2011]MachineWorks cdq分治+斜率优化dp
  14. 如何在springboot项目中进行XSS过滤
  15. [Swift]LeetCode844. 比较含退格的字符串 | Backspace String Compare
  16. 基准对象object中的基础类型----字符串 (三)
  17. java数组知识点总结
  18. Splay的初步学习
  19. Doker学习笔记之一:安装
  20. ORM之查询

热门文章

  1. 【Android - 自定义View】之View的位置参数
  2. mac 下面 vim 编辑器 开启语法高亮
  3. Chapter 04—Basic Data Management
  4. Hello! 第一篇博客!
  5. unity3D 游戏物体同时绑定单击、双击事件
  6. 我是怎样测试Java类的线程安全性的
  7. 【集合系列】- 深入浅出的分析 Properties
  8. luogu P2740 [USACO4.2]草地排水Drainage Ditches |网络流
  9. ARTS-S C语言主线程获取子线程返回值
  10. 【H5】344- 微信 H5 页面兼容性解决方案