javascript功能函数
//取得字符串的字节长度
String.prototype.LenB = function(){var arr=this.match(/[^/x00-/xff]/ig);return this.length+(arr==null?0:arr.length);}
//增加Left函数,从左向右取了符串,mode不为0,则判断汉字
String.prototype.Left = function(num,mode){if(!//d+/.test(num))return(this);var str = this.substr(0,num);if(!mode) return str;var n = str.LenB() - str.length;num = num - parseInt(n/2);return this.substr(0,num);}
//增加Right函数,从右向左取了符串,mode不为0,则判断汉字
String.prototype.Right = function(num,mode){if(!//d+/.test(num))return(this);var str = this.substr(this.length-num);if(!mode) return str;var n = str.Tlength() - str.length;num = num - parseInt(n/2);return this.substr(this.length-num);}
//判断str在字符串里出现的次数,不为0忽略大小于
String.prototype.GetCount = function(str,mode){return eval("this.match(/("+str+")/g"+(mode?"i":"")+").length");}
//去掉字符串两端的空格
String.prototype.Trim=function(){return this.replace(/(^/s*)|(/s*$)/g,"");}
//去掉字符串左端的空格
String.prototype.Ltrim = function(){return this.replace(/(^/s*)/g, "");}
//去掉字符串右端的空格
String.prototype.Rtrim = function(){return this.replace(/(/s*$)/g, "");}
//为字符串增加ASC函数,如果没有参数,则返回字符串第一个字符的ASCII码,如果指定参数all,则返回所有的字符串的ASCII码,并以分隔符分隔,如果不指定分隔符,则以空格分隔
//Asc(['all',['分隔符']]);
String.prototype.Asc=function(){
if(!this.length)return null;
var exStr=" ";
if(arguments.length)
{
if(arguments[0].toLowerCase()=="all")
if(arguments.length>1) exStr=arguments[1].toString();
var asciistr="";
for(i=0;i<this.length;i++)
{
execScript("asccode=asc('"+this.substr(i,1)+"')","vbs");
asciistr+=asccode+exStr;
}
asciistr=asciistr.substr(0,asciistr.length-1);
}
else{execScript("asccode=asc('"+this+"')","vbs");asciistr=asccode;}
return asciistr;
}
//让Numer型数据具有Chr方法,把数字转换为ASCII码字符, 如 var i=65; alert(i.Chr()); 输出结果为A
//要求为0-255间的数字,否则返回null
Number.prototype.Chr=function()
{
if(isNaN(this)||this<0||this>255) return null;
execScript("chrstr=chr('"+this+"')","vbs");
return chrstr;
}
//返回数字指定位数的小数,如 var i=100.01234;alert(i.toFixed(2));结果100.01
if(!Number.prototype.toFixed) {
Number.prototype.toFixed = function(n) {
with(Math) return round(Number(this)*pow(10,n))/pow(10,n)
}
}
/*
function key(subKey,findWith) {
var arr,reg = new RegExp("(^| |&)"+subKey+"=([^&]*)(&|$)");
var findWith = findWith?findWith:document.cookie;
if (arr = findWith.match(reg))
return unescape(arr[2]);
else
return null;
}
}
function DateAdd(strInterval, NumDay, dtDate) {
var dtTmp = new Date(dtDate);
if (isNaN(dtTmp)) dtTmp = new Date();
switch (strInterval) {
case "s":return new Date(Date.parse(dtTmp) + (1000 * NumDay));
case "n":return new Date(Date.parse(dtTmp) + (60000 * NumDay));
case "h":return new Date(Date.parse(dtTmp) + (3600000 * NumDay));
case "d":return new Date(Date.parse(dtTmp) + (86400000 * NumDay));
case "w":return new Date(Date.parse(dtTmp) + ((86400000 * 7) * NumDay));
case "m":return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + NumDay, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case "y":return new Date((dtTmp.getFullYear() + NumDay), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
}
}
// DateDiff("m","2002/12/1 00:00:00","2004/12/1 00:00:00")
function DateDiff(strInterval, dtStart, dtEnd) {
var dtStart = new Date(dtStart);
if (isNaN(dtStart)) dtStart = new Date();
var dtEnd = new Date(dtEnd);
if (isNaN(dtEnd)) dtEnd = new Date();
switch (strInterval) {
case "s":return parseInt((dtEnd - dtStart) / 1000);
case "n":return parseInt((dtEnd - dtStart) / 60000);
case "h":return parseInt((dtEnd - dtStart) / 3600000);
case "d":return parseInt((dtEnd - dtStart) / 86400000);
case "w":return parseInt((dtEnd - dtStart) / (86400000 * 7));
case "m":return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);
case "y":return dtEnd.getFullYear() - dtStart.getFullYear();
}
}
// b2s("11新浪网!@#程序员_+}{:><")
function b2s(strng) {
var Matches = strng.match(/[/x21-/x7e]/g);
for (var i=0;i<Matches.length;i++) {
strng = strng.replace(Matches[i],String.fromCharCode(Matches[i].charCodeAt (0)+65248))
}
return strng;
}
*/
// 数组扩展
// pop()
//push()
//
if (!Array.prototype.pop) {
Array.prototype.pop = function() {
var lastElement = this[this.length-1];
this.length = Math.max(this.length-1,0);
return lastElement;
}
}
if (!Array.prototype.push) {
Array.prototype.push = function() {
for(var i=0;i<arguments.length;i++) {
this[this.length]=arguments[i];
}
return this.length;
}
}
if (!Array.prototype.shift) {
Array.prototype.shift = function() {
var firstElement = this[0];
this.reverse();
this.pop();
this.reverse();
return firstElement;
}
}
if (!Array.prototype.splice) {
Array.prototype.splice = function() {
var start = arguments[0];
var deleteCount = start+arguments[1];
var deleteItem = this.slice(start,deleteCount);
var beforeItem = this.slice(0,start);
var afterItem = this.slice(deleteCount);
this.length=beforeItem.length;
var i;
for (i=2;i<arguments.length;this[this.length]=arguments[i++]);
for (i=0;i<afterItem.length;this[this.length]=afterItem[i++]);
return deleteItem;
}
}
if (!Array.prototype.unshift) {
Array.prototype.unshift = function() {
var arr = new Array();
for (var i=0;i<arguments.length;arr[i]=arguments[i++]);
arr = arr.concat(this);
this.length = 0;
for (i=0;i<arr.length;this[i]=arr[i++]);
}
}
//编码方式扩展
function Encoding() //编码处理对象
{
//encode(str) 进行 URLEncode编码,可以设置Cookie的值
//decode(str) 进行 URLEncode解码,可以将Cookie的值 解码
//encodeURI(str) 使用UTF-8标准URL格式编码
this.version="1.0";
this.copyright="笨笨熊";
this.encode=function(str){
var ret="";
var strSpecial="!/"#$%&'()*+,/:;<=>?[]^`{|}~%";
var tt= "";
for(var i=0;
i<str.length;
i++){
var chr = str.charAt(i);
execScript("c=hex(asc('"+chr+"'))","vbs");
tt += chr+":"+c+"n";
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
} else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
this.decode=function(str){
var ret="";
for(var i=0;
i<str.length;
i++){
var chr = str.charAt(i);
if(chr == "+"){
ret+=" ";
} else if(chr=="%"){
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f){
execScript("t=chr("+parseInt("0x"+asc+str.substring(i+4,i+6))+")","vbs");
ret+=t;
i+=5;
} else{
execScript("t=chr("+parseInt("0x"+asc)+")","vbs");
ret+=t
i+=2;
}
} else{
ret+= chr;
}
}
return ret;
}
this.encodeURI=function(str)
{
strs="";
for(i=0;
i<str.length;
i++)strs+=toUtf8char(str.charCodeAt(i));
return strs;
}
function toUtf8char(code)
{
var iByte=0;
var i=0;
result="";
while(code>0x7f)
{
iByte=code%0x40;
code=(code-iByte)/0x40;
result="%"+(iByte|0x80).toString(16).toUpperCase()+result;
i++;
}
prefix=[0x0,0xc0,0xe0,0xf0,0xf8,0xfc];
if(i>prefix.length)
{
i=5;
}
result="%"+(code|prefix[i]).toString(16).toUpperCase()+result;
return result;
}
}
//document扩展
function getCookies(cookieName) //获取Cookice的值
{
if(document.cookie.length==0) return "";
var cookie=document.cookie.split(";");
for(i=0;
i<cookie.length;
i++)
if(cookie[i].indexOf("=")>0)
if(cookie[i].substring(0,cookie[i].indexOf("=")).replace(" ","").toLowerCase()==cookieName.toLowerCase()) return cookie[i].substring(cookie[i].indexOf("=")+1);
}
function setCookies(cookieName,Value) //设置Cookice的值
{
if(document.cookie.length==0) return "";
var cookie=document.cookie.split(";");
for(i=0;
i<cookie.length;
i++)
if(cookie[i].indexOf("=")>0)
if(cookie[i].substring(0,cookie[i].indexOf("=")).replace(" ","").toLowerCase()==cookieName.toLowerCase()) return cookie[i].substring(cookie[i].indexOf("=")+1);
}
function getQuery(name) //获取URL请求的参数
{
var reg = new RegExp("(^|&)"+name+"=([^&]*)(&|$)");
var r = location.search.substr(1).match(reg)
if (r!=null) return unescape(r[2]);
}
function MsgBox() //让JS也有VB的MsgBox
{
if(!arguments.length) return false;
var prompt=arguments[0],btn,title;
arguments[1]!=undefined?btn=arguments[1]:btn=0;
arguments[2]!=undefined?title=arguments[2]:title="";
execScript("myval=MsgBox ('"+prompt+"',"+btn+",'"+title+"')","vbs");
return myval;
}
//MD5加密算法,已经压缩过了,因为里面的东西不用修改,用法简单不过,MD5('需要加密的字符串'),呵呵!
function MD5(sMessage){function RotateLeft(lValue,iShiftBits){return(lValue<<iShiftBits)|(lValue>>>(32-iShiftBits));}function AddUnsigned(lX,lY){var lX4,lY4,lX8,lY8,lResult;lX8=(lX&0x80000000);lY8=(lY&0x80000000);lX4=(lX&0x40000000);lY4=(lY&0x40000000);lResult=(lX&0x3FFFFFFF)+(lY&0x3FFFFFFF);if(lX4&lY4)return(lResult^0x80000000^lX8^lY8);if(lX4|lY4){if(lResult&0x40000000)return(lResult^0xC0000000^lX8^lY8);else return(lResult^0x40000000^lX8^lY8);}else return(lResult^lX8^lY8);}function F(x,y,z){return(x&y)|((~x)&z);}function G(x,y,z){return(x&z)|(y&(~z));}function H(x,y,z){return(x^y^z);}function I(x,y,z){return(y^(x|(~z)));}function FF(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(F(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);}function GG(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(G(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);}function HH(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(H(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);}function II(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(I(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);}function ConvertToWordArray(sMessage){var lWordCount;var lMessageLength=sMessage.length;var lNumberOfWords_temp1=lMessageLength+8;var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1%64))/64;var lNumberOfWords=(lNumberOfWords_temp2+1)*16;var lWordArray=Array(lNumberOfWords-1);var lBytePosition=0;var lByteCount=0;while(lByteCount<lMessageLength){lWordCount=(lByteCount-(lByteCount%4))/4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=(lWordArray[lWordCount]|(sMessage.charCodeAt(lByteCount)<<lBytePosition));lByteCount++;}lWordCount=(lByteCount-(lByteCount%4))/4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=lWordArray[lWordCount]|(0x80<<lBytePosition);lWordArray[lNumberOfWords-2]=lMessageLength<<3;lWordArray[lNumberOfWords-1]=lMessageLength>>>29;return lWordArray;}function WordToHex(lValue){var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;for(lCount=0;lCount<=3;lCount++){lByte=(lValue>>>(lCount*8))&255;WordToHexValue_temp="0"+lByte.toString(16);WordToHexValue=WordToHexValue+WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);}return WordToHexValue;}var x=Array();var k,AA,BB,CC,DD,a,b,c,d;var S11=7,S12=12,S13=17,S14=22;var S21=5,S22=9,S23=14,S24=20;var S31=4,S32=11,S33=16,S34=23;var S41=6,S42=10,S43=15,S44=21;x=ConvertToWordArray(sMessage);a=0x67452301;b=0xEFCDAB89;c=0x98BADCFE;d=0x10325476;for(k=0;k<x.length;k+=16){AA=a;BB=b;CC=c;DD=d;a=FF(a,b,c,d,x[k+0],S11,0xD76AA478);d=FF(d,a,b,c,x[k+1],S12,0xE8C7B756);c=FF(c,d,a,b,x[k+2],S13,0x242070DB);b=FF(b,c,d,a,x[k+3],S14,0xC1BDCEEE);a=FF(a,b,c,d,x[k+4],S11,0xF57C0FAF);d=FF(d,a,b,c,x[k+5],S12,0x4787C62A);c=FF(c,d,a,b,x[k+6],S13,0xA8304613);b=FF(b,c,d,a,x[k+7],S14,0xFD469501);a=FF(a,b,c,d,x[k+8],S11,0x698098D8);d=FF(d,a,b,c,x[k+9],S12,0x8B44F7AF);c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);a=FF(a,b,c,d,x[k+12],S11,0x6B901122);d=FF(d,a,b,c,x[k+13],S12,0xFD987193);c=FF(c,d,a,b,x[k+14],S13,0xA679438E);b=FF(b,c,d,a,x[k+15],S14,0x49B40821);a=GG(a,b,c,d,x[k+1],S21,0xF61E2562);d=GG(d,a,b,c,x[k+6],S22,0xC040B340);c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);b=GG(b,c,d,a,x[k+0],S24,0xE9B6C7AA);a=GG(a,b,c,d,x[k+5],S21,0xD62F105D);d=GG(d,a,b,c,x[k+10],S22,0x2441453);c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);b=GG(b,c,d,a,x[k+4],S24,0xE7D3FBC8);a=GG(a,b,c,d,x[k+9],S21,0x21E1CDE6);d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);c=GG(c,d,a,b,x[k+3],S23,0xF4D50D87);b=GG(b,c,d,a,x[k+8],S24,0x455A14ED);a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);d=GG(d,a,b,c,x[k+2],S22,0xFCEFA3F8);c=GG(c,d,a,b,x[k+7],S23,0x676F02D9);b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);a=HH(a,b,c,d,x[k+5],S31,0xFFFA3942);d=HH(d,a,b,c,x[k+8],S32,0x8771F681);c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);a=HH(a,b,c,d,x[k+1],S31,0xA4BEEA44);d=HH(d,a,b,c,x[k+4],S32,0x4BDECFA9);c=HH(c,d,a,b,x[k+7],S33,0xF6BB4B60);b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);d=HH(d,a,b,c,x[k+0],S32,0xEAA127FA);c=HH(c,d,a,b,x[k+3],S33,0xD4EF3085);b=HH(b,c,d,a,x[k+6],S34,0x4881D05);a=HH(a,b,c,d,x[k+9],S31,0xD9D4D039);d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);b=HH(b,c,d,a,x[k+2],S34,0xC4AC5665);a=II(a,b,c,d,x[k+0],S41,0xF4292244);d=II(d,a,b,c,x[k+7],S42,0x432AFF97);c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);b=II(b,c,d,a,x[k+5],S44,0xFC93A039);a=II(a,b,c,d,x[k+12],S41,0x655B59C3);d=II(d,a,b,c,x[k+3],S42,0x8F0CCC92);c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);b=II(b,c,d,a,x[k+1],S44,0x85845DD1);a=II(a,b,c,d,x[k+8],S41,0x6FA87E4F);d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);c=II(c,d,a,b,x[k+6],S43,0xA3014314);b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);a=II(a,b,c,d,x[k+4],S41,0xF7537E82);d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);c=II(c,d,a,b,x[k+2],S43,0x2AD7D2BB);b=II(b,c,d,a,x[k+9],S44,0xEB86D391);a=AddUnsigned(a,AA);b=AddUnsigned(b,BB);c=AddUnsigned(c,CC);d=AddUnsigned(d,DD);}var temp=WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);return temp.toLowerCase();}
//
function _(_sid){return document.getElementsByTagName(_sid);}
//
function $(_sid){return document.getElementById(_sid);}
//
function $$(_sid){return parent.document.getElementById(_sid);}