多语言展示
当前在线:1143今日阅读:26今日分享:39

javascript常用方法函数收集(五)

总结了下 javascript中常用方法函数的收集,内容比较多, 写成了多篇!(大牛可直接忽略)
方法/步骤
1

获取网页被卷去的位置function getScrollXY() {    return document.body.scrollTop ? {        x: document.body.scrollLeft,        y: document.body.scrollTop    }: {        x: document.documentElement.scrollLeft,        y: document.documentElement.scrollTop    }}

2

日期格式化函数+调用方法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'));

3

时间个性化输出功能/*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;}

4

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

5

常用的正则表达式//正整数/^[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]+$

6

返回顶部的通用方法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');

7

获得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

8

打开一个窗体通用方法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();    }}

9

清除相同的数组String.prototype.unique=function(){    var x=this.split(/[\r\n]+/);    var y='';    for(var i=0;i

推荐信息