javascript 常用代碼大全(八)

來源:互聯網
上載者:User

 

// 12

針對javascript的幾個對象的擴充函數 
function checkBrowser() 

this.ver=navigator.appVersion 
this.dom=document.getElementById?1:0 
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0; 
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
this.ie4=(document.all && !this.dom)?1:0; 
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
this.ns4=(document.layers && !this.dom)?1:0; 
this.mac=(this.ver.indexOf(’Mac’) > -1) ?1:0; 
this.ope=(navigator.userAgent.indexOf(’Opera’)>-1); 
this.ie=(this.ie6 || this.ie5 || this.ie4) 
this.ns=(this.ns4 || this.ns5) 
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope) 
this.nbw=(!this.bw) 
return this; 

/* 
****************************************** 
日期函數擴充 
****************************************** 
*/ 

/* 
=========================================== 
//轉換成大寫日期(中文) 
=========================================== 
*/ 
Date.prototype.toCase = function() 

var digits= new Array(’零’,’一’,’二’,’三’,’四’,’五’,’六’,’七’,’八’,’九’,’十’,’十一’,’十二’); 
var unit= new Array(’年’,’月’,’日’,’點’,’分’,’秒’); 
var year= this.getYear() + ""; 
var index; 
var output=""; 
////////得到年 
for (index=0;index<year.length;index++ ) 

output += digits[parseInt(year.substr(index,1))]; 

output +=unit[0]; 
///////得到月 
output +=digits[this.getMonth()] + unit[1]; 
///////得到日 
switch (parseInt(this.getDate() / 10)) 

case 0: 
output +=digits[this.getDate() % 10]; 
break; 
case 1: 
output +=digits[10] + ((this.getDate() % 10)>0?digits[(this.getDate() % 10)]:""); 
break; 
case 2: 
case 3: 
output +=digits[parseInt(this.getDate() / 10)] + digits[10]  + ((this.getDate() % 10)>0?digits[(this.getDate() % 10)]:""); 
default: 
break; 

output +=unit[2]; 
///////得到時 
switch (parseInt(this.getHours() / 10)) 

case 0: 
output +=digits[this.getHours() % 10]; 
break; 
case 1: 
output +=digits[10] + ((this.getHours() % 10)>0?digits[(this.getHours() % 10)]:""); 
break; 
case 2: 
output +=digits[parseInt(this.getHours() / 10)] + digits[10] + ((this.getHours() % 10)>0?digits[(this.getHours() % 10)]:""); 
break; 

output +=unit[3]; 
if(this.getMinutes()==0&&this.getSeconds()==0) 

output +="整"; 
return output; 

///////得到分 
switch (parseInt(this.getMinutes() / 10)) 

case 0: 
output +=digits[this.getMinutes() % 10]; 
break; 
case 1: 
output +=digits[10] + ((this.getMinutes() % 10)>0?digits[(this.getMinutes() % 10)]:""); 
break; 
case 2: 
case 3: 
case 4: 
case 5: 
output +=digits[parseInt(this.getMinutes() / 10)] + digits[10] + ((this.getMinutes() % 10)>0?digits[(this.getMinutes() % 10)]:""); 
break; 

output +=unit[4]; 
if(this.getSeconds()==0) 

output +="整"; 
return output; 

///////得到秒 
switch (parseInt(this.getSeconds() / 10)) 

case 0: 
output +=digits[this.getSeconds() % 10]; 
break; 
case 1: 
output +=digits[10] + ((this.getSeconds() % 10)>0?digits[(this.getSeconds() % 10)]:""); 
break; 
case 2: 
case 3: 
case 4: 
case 5: 
output +=digits[parseInt(this.getSeconds() / 10)] + digits[10] + ((this.getSeconds() % 10)>0?digits[(this.getSeconds() % 10)]:""); 
break; 

output +=unit[5]; 
 
return output; 

/* 
=========================================== 
//轉換成農曆 
=========================================== 
*/ 
Date.prototype.toChinese = function() 

//暫缺 

/* 
=========================================== 
//是否是閏年 
=========================================== 
*/ 
Date.prototype.isLeapYear = function() 

return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0))); 

/* 
=========================================== 
//獲得該月的天數 
=========================================== 
*/ 
Date.prototype.getDayCountInMonth = function() 

var mon = new Array(12); 
    mon[0] = 31; mon[1] = 28; mon[2] = 31; mon[3] = 30; mon[4]  = 31; mon[5]  = 30; 
    mon[6] = 31; mon[7] = 31; mon[8] = 30; mon[9] = 31; mon[10] = 30; mon[11] = 31; 
if(0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0))&&this.getMonth()==2) 

return 29; 

else 

return mon[this.getMonth()]; 

/* 
=========================================== 
//日期比較 
=========================================== 
*/ 
Date.prototype.Compare = function(objDate) 

if(typeof(objDate)!="object" && objDate.constructor != Date) 

return -2; 

var d = this.getTime() - objDate.getTime(); 
if(d>0) 

return 1; 

else if(d==0) 

return 0; 

else 

return -1; 


/* 
=========================================== 
//格式化日期格式 
=========================================== 
*/ 
Date.prototype.Format = function(formatStr) 

var str = formatStr; 
str=str.replace(/yyyy|YYYY/,this.getFullYear()); 
str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():"0" + (this.getYear() % 100)); 
str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():"0" + this.getMonth()); 
str=str.replace(/M/g,this.getMonth()); 
str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():"0" + this.getDate()); 
str=str.replace(/d|D/g,this.getDate()); 
str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():"0" + this.getHours()); 
str=str.replace(/h|H/g,this.getHours()); 
str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():"0" + this.getMinutes()); 
str=str.replace(/m/g,this.getMinutes()); 
str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():"0" + this.getSeconds()); 
str=str.replace(/s|S/g,this.getSeconds()); 
return str; 

/* 
=========================================== 
//由字串直接執行個體日期對象 
=========================================== 
*/ 
Date.prototype.instanceFromString = function(str) 

return new Date("2004-10-10".replace(/-/g, "//")); 

/* 
=========================================== 
//得到日期年月日等加數字後的日期 
=========================================== 
*/ 
Date.prototype.dateAdd = function(interval,number) 

var date = this; 
    switch(interval) 
    { 
        case "y" : 
            date.setFullYear(date.getFullYear()+number); 
            return date; 
        case "q" : 
            date.setMonth(date.getMonth()+number*3); 
            return date; 
        case "m" : 
            date.setMonth(date.getMonth()+number); 
            return date; 
        case "w" : 
            date.setDate(date.getDate()+number*7); 
            return date; 
        
        case "d" : 
            date.setDate(date.getDate()+number); 
            return date; 
        case "h" : 
            date.setHours(date.getHours()+number); 
            return date; 
case "m" : 
            date.setMinutes(date.getMinutes()+number); 
            return date; 
case "s" : 
            date.setSeconds(date.getSeconds()+number); 
            return date; 
        default : 
            date.setDate(d.getDate()+number); 
            return date; 
    } 

/* 
=========================================== 
//計算兩日期相差的日期年月日等 
=========================================== 
*/ 
Date.prototype.dateDiff = function(interval,objDate) 

//暫缺 

/* 
****************************************** 
數字函數擴充 
****************************************** 
*/ 
/* 
=========================================== 
//轉換成中文大寫數字 
=========================================== 
*/ 
Number.prototype.toChinese = function() 

var num = this; 
    if(!/^/d*(/./d*)?$/.test(num)){alert("Number is wrong!"); return "Number is wrong!";} 
    var AA = new Array("零","壹","貳","三","肆","伍","陸","柒","捌","玖"); 
    var BB = new Array("","拾","佰","仟","萬","億","點",""); 
    
    var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = ""; 
    for(var i=a[0].length-1; i>=0; i--) 
    { 
        switch(k) 
        { 
            case 0 : re = BB[7] + re; break; 
            case 4 : if(!new RegExp("0{4}//d{"+ (a[0].length-i-1) +"}$").test(a[0])) 
                     re = BB[4] + re; break; 
      &nb, sp;     case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break; 
        } 
        if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re; 
        if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++; 
    } 
    if(a.length>1) //加上小數部分(如果有小數部分) 
    { 
        re += BB[6]; 
        for(var i=0; i<a[1].length; i++) re += AA[a[1].charAt(i)]; 
    } 
    return re; 

/* 
=========================================== 
//保留小數點位元 
=========================================== 
*/ 
Number.prototype.toFixed=function(len) 

if(isNaN(len)||len==null) 

len = 0; 

else 

if(len<0) 

len = 0; 


    return Math.round(this * Math.pow(10,len)) / Math.pow(10,len); 

/* 
=========================================== 
//轉換成大寫金額 
=========================================== 
*/ 
Number.prototype.toMoney = function() 

// Constants: 
var MAXIMUM_NUMBER = 99999999999.99; 
// Predefine the radix characters and currency symbols for output: 
var CN_ZERO= "零"; 
var CN_ONE= "壹"; 
var CN_TWO= "貳"; 
var CN_THREE= "三"; 
var CN_FOUR= "肆"; 
var CN_FIVE= "伍"; 
var CN_SIX= "陸"; 
var CN_SEVEN= "柒"; 
var CN_EIGHT= "捌"; 
var CN_NINE= "玖"; 
var CN_TEN= "拾"; 
var CN_HUNDRED= "佰"; 
var CN_THOUSAND = "仟"; 
var CN_TEN_THOUSAND= "萬"; 
var CN_HUNDRED_MILLION= "億"; 
var CN_SYMBOL= ""; 
var CN_DOLLAR= "元"; 
var CN_TEN_CENT = "角"; 
var CN_CENT= "分"; 
var CN_INTEGER= "整"; 
  
// Variables: 
var integral; // Represent integral part of digit number. 
var decimal; // Represent decimal part of digit number. 
var outputCharacters; // The output result. 
var parts; 
var digits, radices, bigRadices, decimals; 
var zeroCount; 
var i, p, d; 
var quotient, modulus; 
  
if (this > MAXIMUM_NUMBER) 

return ""; 

  
// Process the coversion from currency digits to characters: 
// Separate integral and decimal parts before processing coversion: 
 parts = (this + "").split("."); 
if (parts.length > 1) 

integral = parts[0]; 
decimal = parts[1]; 
// Cut down redundant decimal digits that are after the second. 
decimal = decimal.substr(0, 2); 

else 

integral = parts[0]; 
decimal = ""; 

// Prepare the characters corresponding to the digits: 
digits= new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE); 
radices= new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND); 
bigRadices= new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); 
decimals= new Array(CN_TEN_CENT, CN_CENT); 
 // Start processing: 
 outputCharacters = ""; 
// Process integral part if it is larger than 0: 
if (Number(integral) > 0) 

zeroCount = 0; 
for (i = 0; i < integral.length; i++) 

p = integral.length - i - 1; 
d = integral.substr(i, 1); 
quotient = p / 4; 
modulus = p % 4; 
if (d == "0") 

zeroCount++; 

else 

if (zeroCount > 0) 

outputCharacters += digits[0]; 

zeroCount = 0; 
outputCharacters += digits[Number(d)] + radices[modulus]; 

if (modulus == 0 && zeroCount < 4) 

outputCharacters += bigRadices[quotient]; 


outputCharacters += CN_DOLLAR; 

// Process decimal part if there is: 
if (decimal != "") 

for (i = 0; i < decimal.length; i++) 

d = decimal.substr(i, 1); 
if (d != "0") 

outputCharacters += digits[Number(d)] + decimals[i]; 



// Confirm and return the final output string: 
if (outputCharacters == "") 

outputCharacters = CN_ZERO + CN_DOLLAR; 

if (decimal == "") 

outputCharacters += CN_INTEGER; 

outputCharacters = CN_SYMBOL + outputCharacters; 
return outputCharacters; 

Number.prototype.toImage = function() 

var num = Array( 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0xF,0x5,0x5,0x5,0xF}", 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0x4,0x4,0x4,0x4,0x4}", 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0xF,0x4,0xF,0x1,0xF}", 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0xF,0x4,0xF,0x4,0xF}", 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0x5,0x5,0xF,0x4,0x4}", 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0xF,0x1,0xF,0x4,0xF}", 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0xF,0x1,0xF,0x5,0xF}", 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0xF,0x4,0x4,0x4,0x4}", 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0xF,0x5,0xF,0x5,0xF}", 
"#define t_width 3/n#define t_height 5/nstatic char t_bits[] = {0xF,0x5,0xF,0x4,0xF}" 
); 
var str = this + ""; 
var iIndex 
var result="" 
for(iIndex=0;iIndex<str.length;iIndex++) 

result +="<img src=’javascript:" & num(iIndex) & "’"> 

return result; 

/* 
****************************************** 
其他函數擴充 
****************************************** 
*/ 

/* 
=========================================== 
//驗證類函數 
=========================================== 
*/ 
function IsEmpty(obj) 

    obj=document.getElementsByName(obj).item(0); 
    if(Trim(obj.value)=="") 
    { 
      
        if(obj.disabled==false && obj.readOnly==false) 
        { 
            obj.focus(); 
        } 
return true; 
    } 
else 

return false; 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.