常用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;
}