前端实用案例个人收藏

常用js封装方法

2019-04-11  本文已影响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;

}
上一篇下一篇

猜你喜欢

热点阅读