获取网页被卷去的位置function getScrollXY() { return document.body.scrollTop ? { x: document.body.scrollLeft, y: document.body.scrollTop }: { x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop }}
日期格式化函数+调用方法Date.prototype.format = function(format){ var o = { 'M+' : this.getMonth()+1, //month 'd+' : this.getDate(), //day 'h+' : this.getHours(), //hour 'm+' : this.getMinutes(), //minute 's+' : this.getSeconds(), //second 'q+' : Math.floor((this.getMonth()+3)/3), //quarter 'S' : this.getMilliseconds() //millisecond }; if(/(y+)/.test(format)) format=format.replace(RegExp.$1,(this.getFullYear()+'').substr(4 - RegExp.$1.length)); for(var k in o){ if(new RegExp('('+ k +')').test(format)) format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :('00'+ o[k]).substr((''+ o[k]).length)); } return format;}alert(new Date().format('yyyy-MM-dd hh:mm:ss'));
时间个性化输出功能/*1、< 60s, 显示为“刚刚”2、>= 1min && < 60 min, 显示与当前时间差“XX分钟前”3、>= 60min && < 1day, 显示与当前时间差“今天 XX:XX”4、>= 1day && < 1year, 显示日期“XX月XX日 XX:XX”5、>= 1year, 显示具体日期“XXXX年XX月XX日 XX:XX”*/function timeFormat(time){ var date = new Date(time), curDate = new Date(), year = date.getFullYear(), month = date.getMonth() + 10, day = date.getDate(), hour = date.getHours(), minute = date.getMinutes(), curYear = curDate.getFullYear(), curHour = curDate.getHours(), timeStr; if(year < curYear){ timeStr = year +'年'+ month +'月'+ day +'日 '+ hour +':'+ minute; }else{ var pastTime = curDate - date, pastH = pastTime/3600000; if(pastH > curHour){ timeStr = month +'月'+ day +'日 '+ hour +':'+ minute; }else if(pastH >= 1){ timeStr = '今天 ' + hour +':'+ minute +'分'; }else{ var pastM = curDate.getMinutes() - minute; if(pastM > 1){ timeStr = pastM +'分钟前'; }else{ timeStr = '刚刚'; } } } return timeStr;}
解决offsetX兼容性问题// 针对火狐不支持offsetX/Yfunction getOffset(e){ var target = e.target, // 当前触发的目标对象 eventCoord, pageCoord, offsetCoord; // 计算当前触发元素到文档的距离 pageCoord = getPageCoord(target); // 计算光标到文档的距离 eventCoord = { X : window.pageXOffset + e.clientX, Y : window.pageYOffset + e.clientY }; // 相减获取光标到第一个定位的父元素的坐标 offsetCoord = { X : eventCoord.X - pageCoord.X, Y : eventCoord.Y - pageCoord.Y }; return offsetCoord;} function getPageCoord(element){ var coord = { X : 0, Y : 0 }; // 计算从当前触发元素到根节点为止, // 各级 offsetParent 元素的 offsetLeft 或 offsetTop 值之和 while (element){ coord.X += element.offsetLeft; coord.Y += element.offsetTop; element = element.offsetParent; } return coord;}
常用的正则表达式//正整数/^[0-9]*[1-9][0-9]*$/;//负整数/^-[0-9]*[1-9][0-9]*$/;//正浮点数/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/; //负浮点数/^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //浮点数/^(-?\d+)(\.\d+)?$/;//email地址/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;//url地址/^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/;或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\'\'])*$//年/月/日(年-月-日、年.月.日)/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/;//匹配中文字符/[\u4e00-\u9fa5]/;//匹配帐号是否合法(字母开头,允许5-10字节,允许字母数字下划线)/^[a-zA-Z][a-zA-Z0-9_]{4,9}$/;//匹配空白行的正则表达式/\n\s*\r/;//匹配中国邮政编码/[1-9]\d{5}(?!\d)/;//匹配身份证/\d{15}|\d{18}/;//匹配国内电话号码/(\d{3}-|\d{4}-)?(\d{8}|\d{7})?/;//匹配IP地址/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/;//匹配首尾空白字符的正则表达式/^\s*|\s*$/;//匹配HTML标记的正则表达式< (\S*?)[^>]*>.*?|< .*? />;//sql 语句^(select|drop|delete|create|update|insert).*$//提取信息中的网络链接(h|H)(r|R)(e|E)(f|F) *= *('|')?(\w|\\|\/|\.)+('|'| *|>)?//提取信息中的邮件地址\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*//提取信息中的图片链接(s|S)(r|R)(c|C) *= *('|')?(\w|\\|\/|\.)+('|'| *|>)?//提取信息中的 IP 地址(\d+)\.(\d+)\.(\d+)\.(\d+)//取信息中的中国手机号码(86)*0*13\d{9}//提取信息中的中国邮政编码[1-9]{1}(\d+){5}//提取信息中的浮点数(即小数)(-?\d*)\.?\d+//提取信息中的任何数字(-?\d*)(\.\d+)?//电话区号^0\d{2,3}$//腾讯 QQ 号^[1-9]*[1-9][0-9]*$//帐号(字母开头,允许 5-16 字节,允许字母数字下划线)^[a-zA-Z][a-zA-Z0-9_]{4,15}$//中文、英文、数字及下划线^[\u4e00-\u9fa5_a-zA-Z0-9]+$
返回顶部的通用方法function backTop(btnId) { var btn = document.getElementById(btnId); var d = document.documentElement; var b = document.body; window.onscroll = set; btn.style.display = 'none'; btn.onclick = function() { btn.style.display = 'none'; window.onscroll = null; this.timer = setInterval(function() { d.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1); b.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1); if ((d.scrollTop + b.scrollTop) == 0) clearInterval(btn.timer, window.onscroll = set); }, 10); }; function set() { btn.style.display = (d.scrollTop + b.scrollTop > 100) ? 'block': 'none' }};backTop('goTop');
获得URL中GET参数值// 用法:如果地址是 test.htm?t1=1&t2=2&t3=3, 那么能取得:GET['t1'], GET['t2'], GET['t3']function get_get(){ querystr = window.location.href.split('?') if(querystr[1]){ GETs = querystr[1].split('&'); GET = []; for(i=0;i
打开一个窗体通用方法function openWindow(url,windowName,width,height){ var x = parseInt(screen.width / 2.0) - (width / 2.0); var y = parseInt(screen.height / 2.0) - (height / 2.0); var isMSIE= (navigator.appName == 'Microsoft Internet Explorer'); if (isMSIE) { var p = 'resizable=1,location=no,scrollbars=no,width='; p = p+width; p = p+',height='; p = p+height; p = p+',left='; p = p+x; p = p+',top='; p = p+y; retval = window.open(url, windowName, p); } else { var win = window.open(url, 'ZyiisPopup', 'top=' + y + ',left=' + x + ',scrollbars=' + scrollbars + ',dialog=yes,modal=yes,width=' + width + ',height=' + height + ',resizable=no' ); eval('try { win.resizeTo(width, height); } catch(e) { }'); win.focus(); }}
清除相同的数组String.prototype.unique=function(){ var x=this.split(/[\r\n]+/); var y=''; for(var i=0;i