常用js封装方法

作者: 一只大橘 | 来源:发表于2019-04-11 15:18 被阅读0次
    暂时只封装了这些方法,有待提升,如有不对的地方  多谢指正
    
    /*
    
    * 2017-11-14
    
    * nick
    
    *常用js方法封装* */
    
    //时间戳标准日期格式转换带时分秒2017-10-13 12:23:36
    
    functionconvertTimelong(value) {
    
          if(value==null ||value==''){
    
          return''
    
    }
    
    functionadd0(m) {
    
          returnm<10?'0'+m:m
    
    }
    
    vartime= newDate(parseInt(value));
    
    vary=time.getFullYear();
    
    varm=time.getMonth()+1;
    
    vard=time.getDate();
    
    varH=time.getHours();
    
    vari=time.getMinutes();
    
    vars=time.getSeconds();
    
    returny+'-'+add0(m)+'-'+add0(d)+"  "+add0(H)+":"+add0(i)+":"+add0(s);
    
    }
    
    //时间戳标准日期格式转换2017-10-13
    
    functionconvertTimeshort(value){
    
    if(value==null ||value==''){
    
    return''
    
    }
    
    functionadd0(m) {
    
    returnm<10?'0'+m:m
    
    }
    
    vartime= newDate(parseInt(value));
    
    vary=time.getFullYear();
    
    varm=time.getMonth()+1;
    
    vard=time.getDate();
    
    varH=time.getHours();
    
    vari=time.getMinutes();
    
    vars=time.getSeconds();
    
    returny+'-'+add0(m)+'-'+add0(d);
    
    }
    
    //截取字符串长度,可自行截取长度
    
    functionsubstrLength(value,length) {
    
    returnvalue.substring(0,length)
    
    }
    
    //将当前时间转换成时间戳
    
    functiongetTimestamp(){
    
    returnDate.parse(newDate())
    
    }
    
    //货币显示格式100,,233,963,525
    
    functionconvertMoney(value) {//货币过滤器
    
    varmoney=Number(value).toString();
    
    if(/[^0-9\.]/.test(money))return" ";
    
    money=money.replace(/^(\d*)$/,"$1.");
    
    money=(money+"00").replace(/(\d*\.\d\d)\d*/,"$1");
    
    money=money.replace(".",",");
    
    varre=/(\d)(\d{3},)/;
    
    while(re.test(money))
    
    money=money.replace(re,"$1,$2");
    
    money=money.replace(/,(\d\d)$/,".$1");
    
    returnmoney.replace(/^\./,"0.");
    
    // return "¥" + money.replace(/^\./,"0.")
    
    }
    
    /*
    
    * 2017-11-15
    
    * nick
    
    * cookie操作* */
    
    //设置cookie值
    
    functionsetmyCookies(name,value){
    
    document.cookie=name+"="+value;
    
    }
    
    //获取cookies值
    
    functiongetmyCookies(c_name){
    
    varc_start,c_end;
    
    if(document.cookie.length>0)
    
    {
    
    c_start=document.cookie.indexOf(c_name+"=");
    
    if(c_start!=-1)
    
    {
    
    c_start=c_start+c_name.length+1;
    
    c_end=document.cookie.indexOf(";",c_start);
    
    if(c_end==-1) c_end=document.cookie.length;
    
    returndocument.cookie.substring(c_start,c_end);
    
    }
    
    }
    
    return""
    
    }
    
    //删除cookie值  设置了domian主域名  二级域名
    
    functiondeletemyCookies(name,domain) {
    
    varexp= newDate();
    
    exp.setTime(exp.getTime()-1);
    
    varcval=getlocalcookie(name);
    
    if(cval!=null){
    
    document.cookie=name+"=0;domain="+domain+";path=/;expires="+newDate(0).toUTCString();
    
    }
    
    varkeys=document.cookie.match(/[^ =;]+(?=\=)/g);
    
    if(keys) {
    
    for(vari=keys.length;i--;)
    
    document.cookie=keys[i]+'=0;expires='+ newDate(0).toUTCString();
    
    document.cookie=keys[i]+'=0;domain='+domain+';path=/;expires='+ newDate(0).toUTCString();
    
    }
    
    }
    
    //删除cookie未设置domain
    
    functiondeletemyCookies(name) {
    
    varexp= newDate();
    
    exp.setTime(exp.getTime()-1);
    
    varcval=getlocalcookie(name);
    
    if(cval!=null){
    
    document.cookie=name+"=0;expires="+newDate(0).toUTCString();
    
    }
    
    varkeys=document.cookie.match(/[^ =;]+(?=\=)/g);
    
    if(keys) {
    
    for(vari=keys.length;i--;)
    
    document.cookie=keys[i]+'=0;expires='+ newDate(0).toUTCString();
    
    document.cookie=keys[i]+'=0;;expires='+ newDate(0).toUTCString();
    
    }
    
    }
    
    functionreplaceBlank(str){
    
    returnstr.replace(/\s+/g,"");
    
    }
    
    /*
    
    * 2017-11-15
    
    * nick
    
    *字符串base64解码md5字符串加密* */
    
    //调用base64编码方法
    
    functionbase_Encode(input) {
    
    returnencode(input);
    
    };
    
    //将字符串转换成base64编码 核心方法
    
    functionencode(input) {
    
    var_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    
    varoutput="";
    
    varchr1,chr2,chr3,enc1,enc2,enc3,enc4;
    
    vari=0;
    
    input=utf8_encode(input);
    
    while(i
    
    chr1=input.charCodeAt(i++);
    
    chr2=input.charCodeAt(i++);
    
    chr3=input.charCodeAt(i++);
    
    enc1=chr1>>2;
    
    enc2=((chr1&3)<<4)|(chr2>>4);
    
    enc3=((chr2&15)<<2)|(chr3>>6);
    
    enc4=chr3&63;
    
    if(isNaN(chr2)) {
    
    enc3=enc4=64;
    
    }else if(isNaN(chr3)) {
    
    enc4=64;
    
    }
    
    output=output+
    
    _keyStr.charAt(enc1)+_keyStr.charAt(enc2)+
    
    _keyStr.charAt(enc3)+_keyStr.charAt(enc4);
    
    }
    
    returnoutput;
    
    }
    
    // private method for UTF-8 encoding
    
    functionutf8_encode(string) {
    
    string=string.replace(/\r\n/g,"\n");
    
    varutftext="";
    
    for(varn=0;n
    
    varc=string.charCodeAt(n);
    
    if(c<128) {
    
    utftext+=String.fromCharCode(c);
    
    }else if((c>127)&&(c<2048)) {
    
    utftext+=String.fromCharCode((c>>6)|192);
    
    utftext+=String.fromCharCode((c&63)|128);
    
    }else{
    
    utftext+=String.fromCharCode((c>>12)|224);
    
    utftext+=String.fromCharCode(((c>>6)&63)|128);
    
    utftext+=String.fromCharCode((c&63)|128);
    
    }
    
    }
    
    returnutftext;
    
    }
    
    //调用base64解码方法
    
    functionbase_Decode(input) {
    
    returndecode(input);
    
    }
    
    //将base64编码转换成字符串 核心方法
    
    functiondecode(input) {
    
    var_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    
    varoutput="";
    
    varchr1,chr2,chr3;
    
    varenc1,enc2,enc3,enc4;
    
    vari=0;
    
    input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");
    
    while(i
    
    enc1=_keyStr.indexOf(input.charAt(i++));
    
    enc2=_keyStr.indexOf(input.charAt(i++));
    
    enc3=_keyStr.indexOf(input.charAt(i++));
    
    enc4=_keyStr.indexOf(input.charAt(i++));
    
    chr1=(enc1<<2)|(enc2>>4);
    
    chr2=((enc2&15)<<4)|(enc3>>2);
    
    chr3=((enc3&3)<<6)|enc4;
    
    output=output+String.fromCharCode(chr1);
    
    if(enc3!=64) {
    
    output=output+String.fromCharCode(chr2);
    
    }
    
    if(enc4!=64) {
    
    output=output+String.fromCharCode(chr3);
    
    }
    
    }
    
    output=_utf8_decode(output);
    
    returnoutput;
    
    }
    
    // private method for UTF-8 decoding
    
    function_utf8_decode(utftext) {
    
    varstring="";
    
    vari=0;
    
    varc=c1=c2=0;
    
    while( i
    
    c=utftext.charCodeAt(i);
    
    if(c<128) {
    
    string+=String.fromCharCode(c);
    
    i++;
    
    }else if((c>191)&&(c<224)) {
    
    c2=utftext.charCodeAt(i+1);
    
    string+=String.fromCharCode(((c&31)<<6)|(c2&63));
    
    i+=2;
    
    }else{
    
    c2=utftext.charCodeAt(i+1);
    
    c3=utftext.charCodeAt(i+2);
    
    string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));
    
    i+=3;
    
    }
    
    }
    
    returnstring;
    
    }
    
    //md5加密
    
    varhexcase=0;/* hex output format. 0 - lowercase; 1 - uppercase        */
    
    varb64pad="";/* base-64 pad character. "=" for strict RFC compliance  */
    
    varchrsz=8;/* bits per input character. 8 - ASCII; 16 - Unicode      */
    
    functionhex_md5(s){returnbinl2hex(core_md5(str2binl(s),s.length*chrsz));}
    
    functionb64_md5(s){returnbinl2b64(core_md5(str2binl(s),s.length*chrsz));}
    
    functionstr_md5(s){returnbinl2str(core_md5(str2binl(s),s.length*chrsz));}
    
    functionhex_hmac_md5(key,data) {returnbinl2hex(core_hmac_md5(key,data));}
    
    functionb64_hmac_md5(key,data) {returnbinl2b64(core_hmac_md5(key,data));}
    
    functionstr_hmac_md5(key,data) {returnbinl2str(core_hmac_md5(key,data));}
    
    functioncore_md5(x,len)
    
    {
    
    /* append padding */
    
    x[len>>5]|=0x80<<((len)%32);
    
    x[(((len+64)>>>9)<<4)+14]=len;
    
    vara=1732584193;
    
    varb= -271733879;
    
    varc= -1732584194;
    
    vard=271733878;
    
    for(vari=0;i
    
    {
    
    varolda=a;
    
    varoldb=b;
    
    varoldc=c;
    
    varoldd=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);
    
    }
    
    returnArray(a,b,c,d);
    
    }
    
    functionmd5_cmn(q,a,b,x,s,t)
    
    {
    
    returnsafe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);
    
    }
    
    functionmd5_ff(a,b,c,d,x,s,t)
    
    {
    
    returnmd5_cmn((b&c)|((~b)&d),a,b,x,s,t);
    
    }
    
    functionmd5_gg(a,b,c,d,x,s,t)
    
    {
    
    returnmd5_cmn((b&d)|(c&(~d)),a,b,x,s,t);
    
    }
    
    functionmd5_hh(a,b,c,d,x,s,t)
    
    {
    
    returnmd5_cmn(b^c^d,a,b,x,s,t);
    
    }
    
    functionmd5_ii(a,b,c,d,x,s,t)
    
    {
    
    returnmd5_cmn(c^(b|(~d)),a,b,x,s,t);
    
    }
    
    /*
    
    * Calculate the HMAC-MD5, of a key and some data
    
    */
    
    functioncore_hmac_md5(key,data)
    
    {
    
    varbkey=str2binl(key);
    
    if(bkey.length>16) bkey=core_md5(bkey,key.length*chrsz);
    
    varipad=Array(16),opad=Array(16);
    
    for(vari=0;i<16;i++)
    
    {
    
    ipad[i]=bkey[i]^0x36363636;
    
    opad[i]=bkey[i]^0x5C5C5C5C;
    
    }
    
    varhash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);
    
    returncore_md5(opad.concat(hash),512+128);
    
    }
    
    /*
    
    * Add integers, wrapping at 2^32. This uses 16-bit operations internally
    
    * to work around bugs in some JS interpreters.
    
    */
    
    functionsafe_add(x,y)
    
    {
    
    varlsw=(x&0xFFFF)+(y&0xFFFF);
    
    varmsw=(x>>16)+(y>>16)+(lsw>>16);
    
    return(msw<<16)|(lsw&0xFFFF);
    
    }
    
    /*
    
    * Bitwise rotate a 32-bit number to the left.
    
    */
    
    functionbit_rol(num,cnt)
    
    {
    
    return(num<>>(32-cnt));
    
    }
    
    /*
    
    * Convert a string to an array of little-endian words
    
    * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
    
    */
    
    functionstr2binl(str)
    
    {
    
    varbin=Array();
    
    varmask=(1<
    
    for(vari=0;i
    
    bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32);
    
    returnbin;
    
    }
    
    /*
    
    * Convert an array of little-endian words to a string
    
    */
    
    functionbinl2str(bin)
    
    {
    
    varstr="";
    
    varmask=(1<
    
    for(vari=0;i
    
    str+=String.fromCharCode((bin[i>>5]>>>(i%32))&mask);
    
    returnstr;
    
    }
    
    /*
    
    * Convert an array of little-endian words to a hex string.
    
    */
    
    functionbinl2hex(binarray)
    
    {
    
    varhex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";
    
    varstr="";
    
    for(vari=0;i
    
    {
    
    str+=hex_tab.charAt((binarray[i>>2]>>((i%4)*8+4))&0xF)+
    
    hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&0xF);
    
    }
    
    returnstr.toUpperCase();
    
    }
    
    /*
    
    * Convert an array of little-endian words to a base-64 string
    
    */
    
    functionbinl2b64(binarray)
    
    {
    
    vartab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    
    varstr="";
    
    for(vari=0;i
    
    {
    
    vartriplet=(((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(varj=0;j<4;j++)
    
    {
    
    if(i*8+j*6>binarray.length*32) str+=b64pad;
    
    elsestr+=tab.charAt((triplet>>6*(3-j))&0x3F);
    
    }
    
    }
    
    returnstr;
    
    }
    

    相关文章

      网友评论

        本文标题:常用js封装方法

        本文链接:https://www.haomeiwen.com/subject/hjwtwqtx.html