js 函数分类1

 *********************时间类********************

 /*js 时间获取*/
var now = new Date(); //获取系统日期,即Sat Jul 29 08:24:48 UTC+0800 2006
var yy = now.getFullYear(); //截取年,即2006
var mo = now.getMonth() + 1; //截取月,即07 (系统中的月份为0~11,所有使用的时候要+1)
var dd = now.getDate(); //截取日,即29
var hh = now.getHours(); //截取小时,即8
var mm = now.getMinutes(); //截取分钟,即34
var ss = now.getSeconds(); //获取秒

 
/*时间转换成毫秒数*/
var oldTime = (new Date("2012/12/25 20:11:11")).getTime(); //得到毫秒数  
  不是上面的格式需要转化,
  如var strdate="2012-12-25 20:11:11";
    strdate=strdate.replace(/-/g,'/');
       var oldTime=(new Date(strdate)).getTime();
  得到的结果为时间戳。
  其中strdate可以有的格式有 :2010/03/04               2010/03/04 20:20          2010/03/04 20:20:20
 
/*毫秒数转化为时间*/
var oldTime = (new Date("2012/12/25 20:11:11")).getTime(); //得到毫秒数  
var newTime = new Date(oldTime); //就得到普通的时间了 
 
/*将时间戳转化为时间*/
 getLocalTime: function (nS) {
            return new Date(parseInt(nS)).toLocaleString().replace(/:\d{1,2}$/, ' ');
        },
 
 常用时间样式
Style(2位表示年份)    |   Style(4位表示年份)    |    输入输出格式                                    
------------------------------------------------------------------------------------------------------------
0                                | 100                            |    mon dd yyyy hh:miAM(或PM)              
------------------------------------------------------------------------------------------------------------
1                                |   101    美国                 |    mm/dd/yy                                       
------------------------------------------------------------------------------------------------------------
2                                |   102     ANSI                |    yy-mm-dd                                         
------------------------------------------------------------------------------------------------------------
3                                |   103     英法                 |    dd/mm/yy                                       
------------------------------------------------------------------------------------------------------------
4                                |   104     德国                 |    dd.mm.yy                                        
------------------------------------------------------------------------------------------------------------
5                                |   105     意大利              |    dd-mm-yy                                         
------------------------------------------------------------------------------------------------------------
6                                |   106                             |    dd mon yy                                        
------------------------------------------------------------------------------------------------------------
7                                |   107                             |    mon dd,yy                                        
------------------------------------------------------------------------------------------------------------
8                                |   108                             |    hh:mm:ss                                         
------------------------------------------------------------------------------------------------------------
9                                |   109                             |    mon dd yyyy hh:mi:ss:mmmmAM(或PM)
------------------------------------------------------------------------------------------------------------
10                              |   110     美国                  |    mm-dd-yy                                         
------------------------------------------------------------------------------------------------------------
11                              |   111     日本                  |    yy/mm/dd                                        
------------------------------------------------------------------------------------------------------------
12                              |   112     ISO                   |    yymmdd                                           
------------------------------------------------------------------------------------------------------------
13                              |   113      欧洲默认值      |    dd mon yyyy hh:mi:ss:mmm(24小时制)  
------------------------------------------------------------------------------------------------------------
14                              |   114                             |    hh:mi:ss:mmm(24小时制)                    
------------------------------------------------------------------------------------------------------------
20                              |   120      ODBC 规范      |     yyyy-mm-dd hh:mi:ss(24小时制)          
------------------------------------------------------------------------------------------------------------
21                              |    121                            |     yyyy-mm-dd hh:mi:ss:mmm(24小时制)  

 
Date Style

 

 *********************网页类********************

获取页面URL参数

function getQueryString(name) {
var reg =new RegExp("(^|&)"+ name +"=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r !=null) return unescape(r[2]); returnnull;
}
 
获取键盘输入值
通window.onload一样document.onkeydown只可以在一个页面中出现一次

document.onkeydown = function(event) {
var e = event || window.event || arguments.callee.caller.arguments[0];
if (e && e.keyCode == 13) {
FunPaging("Skip");
}
}

网页禁止复制和拷贝,禁止按键,禁止网页另存为

//禁止鼠标右键
$(document).bind("contextmenu", function(e) {
    return false;
});
//禁止键盘按键:
<script type="text/javascript">
      function key() {
          if (event.shiftKey) {
              window.close();
          }
          //禁止Shift
          if (event.altKey) {
              window.close();
          }
          //禁止Alt
          if (event.ctrlKey) {
              window.close();
          }
          //禁止Ctrl
          return false;
      }
      document.onkeydown = key;
</script>
<!-- 禁止选中内容 -->
<script type="text/javascript">
    var omitformtags = ["input", "textarea", "select"]
    omitformtags = omitformtags.join("|")
    function disableselect(e) {
        if (omitformtags.indexOf(e.target.tagName.toLowerCase()) == -1)
            return false
    }
    function reEnable() {
        return true
    }
    if (typeof document.onselectstart != "undefined")
        document.onselectstart = new Function("return false")
    else {
        document.onmousedown = disableselect
        document.onmouseup = reEnable
    } 
</script>
<!--禁止网页另存为: -->
<noscript>
    <iframe src="/*"></iframe>
</noscript>
JS禁止网页复制和拷贝,只需要在body中加入部分代码即可
<body oncontextmenu="return false" onselectstart="return false"  oncopy="return false">
View Code
1、禁止右键 
看到那里大家一定会想,这招有很多人介绍过了,而且破解的方法也有很多。但我那里要说的是另一种方法,而且我试了很多方法都没有能破解。具体如下: 

<script> 
function stop(){ 
alert("禁止拷贝! \n\nProhibit copy!"); 
return false; 
} 
document.oncontextmenu=stop; 
</script>

你可以按右键、shift+F10和右ctrl左边的那个键试试!看能不能解。^_^</body> 

2、屏蔽左键选定内容 
我们已经禁了右键,但是人家还是可以用左键来选中文字来复制,通过下面屏蔽左键代码: 

<SCRIPT LANGUAGE=javascript> 
function click() { 
alert('禁止拷贝! \n\nProhibit copy!') } 
function click1() { 
if (event.button==2) {alert('禁止拷贝! \n\nProhibit copy!') }} 
function CtrlKeyDown(){ 
if (event.ctrlKey) {alert('禁止拷贝! \n\nProhibit copy!') }} 
document.onkeydown=CtrlKeyDown; 
document.onselectstart=click; 
document.onmousedown=click1; 
</SCRIPT> 

3、禁止另存为 
经过上面的两步好像你的源源代码已经安全了,但别忘了,别人还可以将你的界面保存下来,再慢慢解析。不过别担心,下面我们来解决这个问题。 
在你要保密的网页中加入以下源代码: 

<noscript> 
<iframe src="*.htm"></iframe> 
</noscript>

4. 对于单张图片 同样可以禁止右键
<img src="http://www.yuzhiguo.com/logo.gif" oncontextmenu="event.returnValue=false" />

引用:http://www.yuzhiguo.com/articleview.asp?id=183
View Code

 

 *********************加密解密类********************

JS URL中的加密和解密

一次项目中遇到的情况是,用js代码获取URL中的参数,参数中含有中文字符,然后再给网页中的标签赋值的时候,就会出现乱码的问题,

然后想到了先在网页转向时对URL加密,然后获取的时候进行解密的方法来解决

js url加密解密

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、      传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                            

例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>

2、      进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

3、      js使用数据时可以使用escape

例如:搜藏中history纪录。

4、      escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

引用::http://www.cnblogs.com/zgaspnet/archive/2012/05/09/2491728.html
View Code

MD5
var hexcase = 0;  
var b64pad  = ""; 
var chrsz   = 8;  
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
function calcMD5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}

function md5_vm_test()
{
  return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}

function core_md5(x, len)
{

  x[len >> 5] |= 0x80 << ((len) % 32);
  x[(((len + 64) >>> 9) << 4) + 14] = len;
  var a =  1732584193;
  var b = -271733879;
  var c = -1732584194;
  var d =  271733878;
  for(var i = 0; i < x.length; i += 16)
  {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;

    a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
    d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
    c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
    b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
    a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
    d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
    c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
    b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
    a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
    d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
    c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
    b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
    a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
    d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
    c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
    b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);
    a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
    d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
    c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
    b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
    a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
    d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
    c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
    b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
    a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
    d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
    c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
    b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
    a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
    d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
    c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
    b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
    a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
    d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
    c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
    b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
    a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
    d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
    c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
    b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
    a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
    d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
    c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
    b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
    a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
    d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
    c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
    b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
    d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
    b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
    a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
    d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
    c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
    b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
    a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
    d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
    c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
    b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
    a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
    d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
    c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
    b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);

    a = safe_add(a, olda);
    b = safe_add(b, oldb);
    c = safe_add(c, oldc);
    d = safe_add(d, oldd);
  }
  return Array(a, b, c, d);
  
}

function md5_cmn(q, a, b, x, s, t)
{
  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
  return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}

function core_hmac_md5(key, data)
{
  var bkey = str2binl(key);
  if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);

  var ipad = Array(16), opad = Array(16);
  for(var i = 0; i < 16; i++) 
  {
    ipad[i] = bkey[i] ^ 0x36363636;
    opad[i] = bkey[i] ^ 0x5C5C5C5C;
  }

  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
  return core_md5(opad.concat(hash), 512 + 128);
}

function safe_add(x, y)
{
  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF);
}

function bit_rol(num, cnt)
{
  return (num << cnt) | (num >>> (32 - cnt));
}

function str2binl(str)
{
  var bin = Array();
  var mask = (1 << chrsz) - 1;
  for(var i = 0; i < str.length * chrsz; i += chrsz)
    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
  return bin;
}

function binl2hex(binarray)
{
  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i++)
  {
    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
  }
  return str;
}

function binl2b64(binarray)
{
  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i += 3)
  {
    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)
                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
    for(var j = 0; j < 4; j++)
    {
      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
    }
  }
  return str;
}
js MD5

 调用: var strEn=hex_md5('123456');

 

 

 *********************字符类********************

中英文判断  字符长度获取 字符截取

 /*判断是否是中文*/
        isChinese: function (str) {  //判断是不是中文  
            //var reCh=/[u00-uff]/;  
            //return !reCh.test(str);  
            return ! /^[\x00-\xff]/.test(str);
        },
        /*获取字符长度(含中英文)*/
        lenStat: function (target) {
            var strlen = 0; //初始定义长度为0  
            var txtval = $.trim(target);
            for (var i = 0; i < txtval.length; i++) {
                if (IM.isChinese(txtval.charAt(i)) == true) {
                    strlen = strlen + 2;//中文为2个字符  
                } else {
                    strlen = strlen + 1;//英文一个字符  
                }
            }
            strlen = Math.ceil(strlen / 2);//中英文相加除2取整数  
            return strlen;
        },

        /*
        *截取字符长度
        *param target:待截取的文字
        *param length:需要截取的长度(以英文字符长度为准)
        */
        cutstr: function (target, length) {
            var strlen = 0; //初始定义长度为0  
            var txtval = $.trim(target);
            var resultValue = "";
            for (var i = 0; i < txtval.length; i++) {
                if (IM.isChinese(txtval.charAt(i)) == true) {
                    strlen = strlen + 2;//中文为2个字符
                    if (strlen <= length) {
                        resultValue = resultValue + txtval.charAt(i);
                    }
                } else {
                    strlen = strlen + 1;//英文一个字符  
                    if (strlen <= length) {
                        resultValue = resultValue + txtval.charAt(i);
                    }
                }
            }
            if (strlen > length) {
                return resultValue + "...";
            } else { return resultValue; }
        },
View Code

十六进制unicode与中文字符的相互转化

  <script type="text/javascript">

        $(function () {
            var hanzi="好好学习,天天向上";
            var unicode=tounicode(hanzi);
            console.log('unicode:'+unicode);
            var hanzi2=tohanzi(unicode);
            console.log('hanzi2:'+hanzi2);
        })


        function tounicode(data) {
            if (data == '') return '请输入汉字';
            var str = '';
            for (var i = 0; i < data.length; i++) {
                str += "\\u" + parseInt(data[i].charCodeAt(0), 10).toString(16);
            }
            return str;
        }
        function  tohanzi(data) {
            if (data == '') return '请输入十六进制unicode';
            data = data.split("\\u");
            var str = '';
            for (var i = 0; i < data.length; i++) {
                str += String.fromCharCode(parseInt(data[i], 16).toString(10));
            }
            return str;
        }
    </script>
View Code

 

 

posted on 2013-06-03 18:45  eye_like  阅读(257)  评论(0编辑  收藏  举报