[JavaScript] Util方法

數值計算

//除法函數,用來得到精確的除法結果
function accDiv(arg1,arg2){
    var t1=0,t2=0,r1,r2;
    try{t1=arg1.toString().split(".")[1].length;}catch(e){}
    try{t2=arg2.toString().split(".")[1].length;}catch(e){}
    with(Math){
        r1=Number(arg1.toString().replace(".",""));
        r2=Number(arg2.toString().replace(".",""));
        return (r1/r2)*pow(10,t2-t1);
    }
}
//乘法函數,用來得到精確的乘法結果
function accMul(arg1,arg2)
{
    var m=0,s1=arg1.toString(),s2=arg2.toString();
    try{m+=s1.split(".")[1].length;}catch(e){}
    try{m+=s2.split(".")[1].length;}catch(e){}
    return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);
}
//加法函數,用來得到精確的加法結果
function accAdd(arg1,arg2){
    var r1,r2,m;
    try{r1=arg1.toString().split(".")[1].length;}catch(e){r1=0;}
    try{r2=arg2.toString().split(".")[1].length;}catch(e){r2=0;}
    m=Math.pow(10,Math.max(r1,r2));
    return (arg1*m+arg2*m)/m;
}
//減法函數
function accSub(arg1,arg2){
     var r1,r2,m,n;
     try{r1=arg1.toString().split(".")[1].length;}catch(e){r1=0;}
     try{r2=arg2.toString().split(".")[1].length;}catch(e){r2=0;}
     m=Math.pow(10,Math.max(r1,r2));
     //last modify by deeka
     //動態控制精度長度
     n=(r1>=r2)?r1:r2;
     return ((arg2*m-arg1*m)/m).toFixed(n);
}

字符串

function dataLength(fData){ 
    var intLength=0;
    for (var i=0;i<fData.length;i++){ 
        if ((fData.charCodeAt(i) < 0) || (fData.charCodeAt(i) > 255)) 
            intLength=intLength+2; 
        else 
            intLength=intLength+1;   
    } 
    return intLength;
} 

一個Map

<pre class="javascript" name="code">function Map() {
    this.elements = new Array();

    //獲取MAP元素個數
    this.size = function() {
        return this.elements.length;
    };
    //判斷MAP是否爲空
    this.isEmpty = function() {
        return (this.elements.length < 1);
    };
    //刪除MAP所有元素
    this.clear = function() {
        this.elements = new Array();
    };
    //向MAP中增加元素(key, value) 
    this.put = function(_key, _value) {
	for (i = 0; i < this.elements.length; i++) {
            if (this.elements[i].key == _key) {
             this.elements[i].value = _value;
             return ;
            }
        }
        this.elements.push( {
            key : _key,
            value : _value
        });
    };
    //刪除指定KEY的元素,成功返回True,失敗返回False
    this.remove = function(_key) {
        var bln = false;
        try {
            for (i = 0; i < this.elements.length; i++) {
                if (this.elements[i].key == _key) {
                    this.elements.splice(i, 1);
                    return true;
                }
            }
        } catch (e) {
            bln = false;
        }
        return bln;
    };
    //獲取指定KEY的元素值VALUE,失敗返回NULL
    this.get = function(_key) {
        try {
            for (i = 0; i < this.elements.length; i++) {
                if (this.elements[i].key == _key) {
                    return this.elements[i].value;
                }
            }
        } catch (e) {
            return null;
        }
    };
    //獲取指定索引的元素(使用element.key,element.value獲取KEY和VALUE),失敗返回NULL
    this.element = function(_index) {
        if (_index < 0 || _index >= this.elements.length) {
            return null;
        }
        return this.elements[_index];
    };
    //判斷MAP中是否含有指定KEY的元素
    this.containsKey = function(_key) {
        var bln = false;
        try {
            for (i = 0; i < this.elements.length; i++) {
                if (this.elements[i].key == _key) {
                    bln = true;
                }
            }
        } catch (e) {
            bln = false;
        }
        return bln;
    };
    //判斷MAP中是否含有指定VALUE的元素
    this.containsValue = function(_value) {
        var bln = false;
        try {
            for (i = 0; i < this.elements.length; i++) {
                if (this.elements[i].value == _value) {
                    bln = true;
                }
            }
        } catch (e) {
            bln = false;
        }
        return bln;
    };
    //獲取MAP中所有VALUE的數組(ARRAY)
    this.values = function() {
        var arr = new Array();
        for (i = 0; i < this.elements.length; i++) {
            arr.push(this.elements[i].value);
        }
        return arr;
    };
    //獲取MAP中所有KEY的數組(ARRAY)
    this.keys = function() {
        var arr = new Array();
        for (i = 0; i < this.elements.length; i++) {
            arr.push(this.elements[i].key);
        }
        return arr;
    };
}

獲取服務器時間

function getServerSysTime(){
	$.ajax({
	    type: 'HEAD', // 獲取頭信息,type=HEAD即可
	    url : window.location.href,
	    complete: function( xhr,data ){
	        // 獲取相關Http Response header
	        var wpoInfo = {
	            "date" : xhr.getResponseHeader('Date'),// 服務器端時間
	            "contentEncoding" : xhr.getResponseHeader('Content-Encoding'),// 服務器端時間
	            "connection" : xhr.getResponseHeader('Connection'),// keep-alive ? close?
	            "contentLength" : xhr.getResponseHeader('Content-Length'),// 響應長度
	            "server" : xhr.getResponseHeader('Server'),// 服務器類型,apache?lighttpd?
	            "vary" : xhr.getResponseHeader('Vary'),
	            "transferEncoding" : xhr.getResponseHeader('Transfer-Encoding'),
	            "contentType" : xhr.getResponseHeader('Content-Type'),// text/html ? text/xml?
	            "cacheControl" : xhr.getResponseHeader('Cache-Control'),
	            "exprires" : xhr.getResponseHeader('Exprires'), // 生命週期?
	            "lastModified" : xhr.getResponseHeader('Last-Modified')
	        };
	        // 對服務器時間格式化
	        var date = new Date(xhr.getResponseHeader('Date'));
		var mon = date.getMonth();
		mon=mon+1;
		var day = date.getDate();
		if(mon<10){
			mon="0"+mon;
		}else{
		    mon=""+mon;
		}
		if(day<10){
			day="0"+day;
		}else{
		    day=""+day;
		}
		alert( date.getFullYear()+'-'+mon+'-'+day+' '+date.toLocaleTimeString());
	    }
	});
}

js調用下載

function download(filePath){
	//filePath爲項目WebRoot下文件路徑 如 test/test.zip;
	var url="<%=request.getContextPath()%>"+"/"+filePath;
	try{ 
		var elemIF = document.createElement("iframe");   
		elemIF.src = url;   
		elemIF.style.display = "none";   
		document.body.appendChild(elemIF);   
	}catch(e){ 
		alert("失敗!");
	} 
}


正則表達式

價格:var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章