美文网首页前端实用案例
常用的js方法封装

常用的js方法封装

作者: 一只大橘 | 来源:发表于2017-12-06 11:56 被阅读44次

    暂时只封装了这些方法,有待提升,如有不对的地方  多谢指正

    /*

    * 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/dbpkixtx.html