平常筆記

時間調用函數 setTimeout()javascript

setTimeout(function(){......},1000) ;//方法 - 多長時間後,執行

衍生:

無限循環

var c=0;
var t;

function timedCount()
{

  alert(c);
  c=c+1;
  t=setTimeout("timedCount()",1000);
}

中止

JS 去除空格html

//str爲要去除空格的字符串:
//去除全部空格:   
var str = str.replace(/\s+/g,"");       
//去除兩頭空格:   
var str = str.replace(/^\s+|\s+$/g,"");
//去除左空格:
var str = str.replace( /^\s*/, '');
//去除右空格:
var str = str.replace(/(\s*$)/g, "");

CSS 禁用鼠標點擊事件java

.disabled { pointer-events: none; }

回車響應擊事件git

$(document).ready(function () {
  $(document).keydown(function (e) {
    var curKey = e.which;
    if (curKey == 13) {
      document.getElementById("checkBtn").click();
      return false;
      }
   });
});

JS時間值判斷web

//取值
function getselval(ctlid) {
    return $('#' + ctlid).val();
}

function() {
    var pubstart = getselval('startdate');
    var pubend = getselval('enddate');

    if (pubstart && !pubend) {
        pubend = "";
    } else if (!pubstart && pubend) {
        pubstart = "";
        pubend = getselval('enddate');
    } else if (!pubstart && !pubend) {
        pubstart = pubend = "";
    }
    if (pubstart == pubend) {} else if (new Date(pubstart) > new Date(pubend)) {
        layer.msg('截止時間不能早於開始時間!', { icon: 0, time: 1000 });
        return;
    }
}

JS 取時間sql

var myDate = new Date();
myDate.getYear(); //獲取當前年份(2位)
myDate.getFullYear(); //獲取完整的年份(4位,1970-????)
myDate.getMonth(); //獲取當前月份(0-11,0表明1月)
myDate.getDate(); //獲取當前日(1-31)
myDate.getDay(); //獲取當前星期X(0-6,0表明星期天)
myDate.getTime(); //獲取當前時間(從1970.1.1開始的毫秒數)
myDate.getHours(); //獲取當前小時數(0-23)
myDate.getMinutes(); //獲取當前分鐘數(0-59)
myDate.getSeconds(); //獲取當前秒數(0-59)
myDate.getMilliseconds(); //獲取當前毫秒數(0-999)
myDate.toLocaleDateString(); //獲取當前日期
myDate.toLocaleTimeString(); //獲取當前時間
myDate.toLocaleString(); //獲取日期與時間

//取月份的天數
function(year, month) {    
    var days = 32 - new Date(year, month - 1, 32).getDate();
}

JS 數值計算
var d = a * 1 + b * 1 + c * 1;

方法定義
/*
var func=function 和 function func()在乎義上沒有任何不一樣,但其解釋優先級不一樣:
後者會先於同一語句級的其餘語句。
即:
 */
{
 var k = xx();
 function xx(){return 5;}
}
/*
不會出錯,
而
 */
{
 var k = xx();
 var xx = function(){return 5;}
}
/*則會出錯。*/

JS 捕捉瀏覽器關閉/刷新 當前頁面api

var notleave = true;
window.onbeforeunload = function () {
    if (notleave) {
     do();
        return ('確認離開當前頁面嗎?未保存的數據將會丟失!');
    }
};    

郵箱正則 數組

^[1-9]*[1-9][0-9]*$瀏覽器

^[1-9][\d]*$ 

字體超出部分處理.ellipsis安全

{
   width:150px;
   display:inline-block;
overflow
: hidden; text-overflow: ellipsis; white-space: nowrap; } .ellipsis-1 { display: -webkit-box; overflow: hidden; text-overflow: ellipsis; word-wrap: break-word; white-space: normal !important; -webkit-line-clamp: 1;//行數控制 -webkit-box-orient: vertical; } .ellipsis-2 { display: -webkit-box; overflow: hidden; text-overflow: ellipsis; word-wrap: break-word; white-space: normal !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .ellipsis-3 { display: -webkit-box; overflow: hidden; text-overflow: ellipsis; word-wrap: break-word; white-space: normal !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }

數據重組排列出全部組合  ["a,b,c,d","1,2,3,4] => a1,a2,a3,a4,b1,b2.....

source:["A1,A2,A3,A4", "B1,B2", "C1,C2,C3,C4"]

var Regroup = {
    //數據重組
    Retooling: function(source) {
        var list = [];
        $.each(source, function(idx, val) {
            if (list[idx]) {
                list[idx].push(val);
            } else {
                list[idx] = [];
                list[idx].push(val);
            }
        });
        console.log(list);
        var ary = [];
        $.each(list[0][0].split(','), function(i, txt) {
       //根據數據長度,分類組合
            if (list.length > 2){
                DataRet.level2(list[1][0].split(','), txt + ",", list, 1, ary);
            } else if (list.length == 2) {
                Regroup.level3(list[1][0].split(','), txt + ",", ary);
            } else {
                ary.push(txt);
            }
        });
        console.log(ary);
        return ary;
    },
    //中間級遍歷
    level2: function(list, val, array, idx, ary) {
        idx = idx + 1;
        $.each(list, function(i, txt) {
            var str = val;
            str += txt + ",";
            if (idx == array.length - 1) {
                Regroup.level3(array[idx][0].split(','), str, ary);
            } else {
                Regroup.level2(array[idx][0].split(','), str, array, idx, ary);
            }
        });
    },
    //最後元素的遍歷
    level3: function(list, val, ary) {
        $.each(list, function(i, txt) {
            var str = val;
            str += txt + ",";
            ary.push(str.substr(0, str.length - 1));
        });
    }
}

改良處理方法:

var array  = [["1", "2"], ["d", "e"]];
var sarr = [
    []
];
for (var i = 0; i < array.length; i++) {
    var tarr = [];
    for (var j = 0; j < sarr.length; j++) {
        for (var k = 0; k < array[i].length; k++) {
            tarr.push(sarr[j].concat(array[i][k]));
        }
    }
    sarr = tarr;
}
sarr;
sarr => "[["1","d"],["1","e"],["2","d"],["2","e"]]"

處理前的數據>>

[{"Value":[
{"ColumnID":"1_10","ValueList":[{"Key":"33","Value":"1"},{"Key":"34","Value":"2"},{"Key":"35","Value":"3"}]},
{"ColumnID":"1_11","ValueList":[{"Key":"36","Value":"4"},{"Key":"37","Value":"5"}]},
{"ColumnID":"1_12","ValueList":[{"Key":38,"Value":"6"}]}
]}]

//演變而來
var rebuildData = function(list) { var newlist = []; for (var n = 0; n < list.length; n++) { var array = list[n].Value; var sarr = [ [] ]; for (var i = 0; i < array.length; i++) { var tarr = []; for (var j = 0; j < sarr.length; j++) { var valList = array[i].ValueList; for (var k = 0; k < valList.length; k++) { valList[k].ColumnID = array[i].ColumnID; if (valList[k].Value === "空值") { valList[k].Value = ""; } tarr.push(sarr[j].concat(valList[k])); } } sarr = tarr; } newlist.push({ group: sarr }); } return newlist; }

處理後的數據 newlist>>

[{"group":[
[{"Key":"33","Value":"1","ColumnID":"1_10"},{"Key":"36","Value":"4","ColumnID":"1_11"},{"Key":38,"Value":"6","ColumnID":"1_12"}],
[{"Key":"33","Value":"1","ColumnID":"1_10"},{"Key":"37","Value":"5","ColumnID":"1_11"},{"Key":38,"Value":"6","ColumnID":"1_12"}],
[{"Key":"34","Value":"2","ColumnID":"1_10"},{"Key":"36","Value":"4","ColumnID":"1_11"},{"Key":38,"Value":"6","ColumnID":"1_12"}],
[{"Key":"34","Value":"2","ColumnID":"1_10"},{"Key":"37","Value":"5","ColumnID":"1_11"},{"Key":38,"Value":"6","ColumnID":"1_12"}],
[{"Key":"35","Value":"3","ColumnID":"1_10"},{"Key":"36","Value":"4","ColumnID":"1_11"},{"Key":38,"Value":"6","ColumnID":"1_12"}],
[{"Key":"35","Value":"3","ColumnID":"1_10"},{"Key":"37","Value":"5","ColumnID":"1_11"},{"Key":38,"Value":"6","ColumnID":"1_12"}]
]}]

後續C#版排列組合

static void Main(string[] args)
        {
          
          List<List<string>> val = new List<List<string>> {
                  new List<string>(new string[] { "T" }),
                  new List<string>(new string[] { "C","G" }),
                  new List<string>(new string[] { "A","H","K" }),
                  new List<string>(new string[] { "0","1","2","3","4","5"}),
                  new List<string>(new string[] { "0","1","2","3","4","5","6","7","8","9"})
                };
            List<List<string>> data = composeData(val);
            foreach (List<string> one in data)
            {
                for (int i = 0; i < one.Count; i++)
                {
                    Console.Write(one[i]);
                    if (i != one.Count - 1)
                    {
                        Console.Write("_");
                    }
                }
                Console.WriteLine();
            }
            Console.WriteLine(data.Count);
            Console.ReadKey();
}
 //組合排列
        static List<List<string>> composeData(List<List<string>> val)
        {
            List<List<string>> array = val;
            List<List<string>> sarr = new List<List<string>>();
            sarr.Add(new List<string>());//新加空組 for (int i = 0; i < array.Count; i++)
            {
                List<List<string>> tarr = new List<List<string>>();//接收本輪全部組合 for (int j = 0; j < sarr.Count; j++)
                {
                    for (var k = 0; k < array[i].Count; k++)
                    {
                        List<string> slist = new List<string>();//接收2維數組值 foreach (string str in sarr[j])
                        {
                            slist.Add(str);
                        }
                        slist.Add(array[i][k]);//追加值
                        tarr.Add(slist);
                    }
                }
                sarr = new List<List<string>>();
                foreach (List<string> str in tarr)
                {
                    sarr.Add(str);
                }
            }
            return sarr;
        }

 


 vs2015啓動網站調試提示 HTTP 錯誤 403.14 - Forbidden Web 服務器被配置爲不列出此目錄的內容。

今天安裝了vs2015 下載一個項目進行試用,啓動調試的時候提示

HTTP 錯誤 403.14 - Forbidden Web 服務器被配置爲不列出此目錄的內容。

最可能的緣由:

  • 沒有爲請求的 URL 配置默認文檔,而且沒有在服務器上啓用目錄瀏覽。
可嘗試的操做:
  • 若是不但願啓用目錄瀏覽,請確保配置了默認文檔而且該文件存在。
  • 啓用目錄瀏覽。確認網站或應用程序配置文件中的 configuration/system.webServer/directoryBrowse@enabled 屬性已設置爲 true。
    1. 轉到 IIS Express 安裝目錄。
    2. 運行appcmd set config /section:system.webServer/directoryBrowse /enabled:true以在服務器級別啓用目錄瀏覽。
    3. 運行appcmd set config ["SITE_NAME"] /section:system.webServer/directoryBrowse /enabled:true以在網站級別啓用目錄瀏覽。

解決方法:

1.在網站的配置文件裏添加一句

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

2.在個人文檔 C:\Users\Administrator\Documents\IISExpress\config\applicationhost.config

裏找到<directoryBrowse enabled="false" />節點,把false改成true,這樣就能夠了。


javascript 判斷某個數組中是否包含另外一個數組

//是否被包含,是返回true,不是返回false
function isContained(a, b){
    if(!(a instanceof Array) || !(b instanceof Array)) return false;
    if(a.length < b.length) return false;
    var aStr = a.toString();
console.info(aStr);
    for(var i = 0, len = b.length; i < len; i++){
console.info(aStr.indexOf(b[i]));
       if(aStr.indexOf(b[i]) == -1) return false;
    }
    return true;
}
function test(){
    var a = [1,2,3,4,5];
    var b = [1,4,3,2];
    var c = [1,6];
    alert(isContained(a,b));//true
    alert(isContained(a,c));//false
}

網站中頁面跳轉傳參

<!-----------a.html --------->
function
jump(id) {   var url = "b.htm?id=" + id + "&v=" + Math.random();   window.open(url, '_self'); }
//公共JS中
var
para = { ... } var getUrlParams = function() { if (para.args) { return para.args; } else { var args = []; var query = location.search.substring(1); //獲取查詢串 var pairs = query.split("&"); //在逗號處斷開 for (var i = 0; i < pairs.length; i++) { var pos = pairs[i].indexOf('='); //查找name=value if (pos == -1) continue; //若是沒有找到就跳過 var argname = pairs[i].substring(0, pos); //提取name var value = pairs[i].substring(pos + 1); //提取value args[argname] = unescape(value); //存爲屬性 } return (para.args = args); } };
<!--------b.html:--------->
var
args = getUrlParams(); var step = args["id"];

 發佈網站(接口api),域名訪問

1.添加新網站,綁定好路徑

2.網站綁定

端口使用默認的(80)

主機名自定義

多個網站可共用默認端口

3.本機測試訪問,作重定向設置

C:\Windows\System32\drivers\etc\hosts

xxx.xxx.x.xxx(本機IP地址)  yyy.yyyy.yyy(主機名)

4.瀏覽器訪問測試


C#讀取Excel到DataSet

public static System.Data.DataSet LoadDataFromExcel(string filePath)
{
    try
    {
        string strConn;
        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath +
                  ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'";
        System.Data.OleDb.OleDbConnection OleConn = new System.Data.OleDb.OleDbConnection(strConn);
        OleConn.Open();
        string tbName = OleConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null).Rows[0][2].ToString().Trim();
        String sql = "SELECT * FROM  [" + tbName + "A2:H65535" + "]"; //但是更改Sheet名稱,好比sheet2,等等   
        System.Data.OleDb.OleDbDataAdapter OleDaExcel = new System.Data.OleDb.OleDbDataAdapter(sql, OleConn);
        System.Data.DataSet OleDsExcle = new System.Data.DataSet();
        OleDaExcel.Fill(OleDsExcle, tbName);
        OleConn.Close();
        return OleDsExcle;
    }
    catch (Exception ex)
    {
        return null;
    }
}

測試日誌

void log(string filePath, string text)
{
    if (!System.IO.Directory.Exists(filePath))
    {
        System.IO.Directory.CreateDirectory(filePath);
    }
    using (System.IO.StreamWriter sw = System.IO.File.AppendText(filePath + "\\InLog.txt"))
    {
        sw.WriteLine(DateTime.Now.ToLongTimeString());
        sw.WriteLine(text);
        sw.WriteLine("");
    }
}

C# base64解碼

string key = "dXNlci9jZXJ0";
byte[] outputb = Convert.FromBase64String(key);
key = System.Text.Encoding.Default.GetString(outputb);

 


 關於在服務器上佈置Excel 實現操做 遇到的問題

檢索 COM 類工廠中CLSID 爲 {000209FF-0000-0000-C000-000000000046} 的組件時失敗,緣由是出現如下錯誤:80070005。

具體解決方法以下:

1:在服務器上安裝office的word軟件.

2:在"開始"->"運行"中輸入dcomcnfg.exe啓動"組件服務"

3:依次雙擊"組件服務"->"計算機"->"個人電腦"->"DCOM配置"

4:在"DCOM配置"中找到"Microsoftword文檔",在它上面點擊右鍵,而後點擊"屬性",彈出"Microsoft word文檔屬性"對話框

5:點擊"標識"標籤,選擇"交互式用戶"

6:點擊"安全"標籤,在"啓動和激活權限"上點擊"自定義",而後點擊對應的"編輯"按鈕,在彈出的"安全性"對話框中填加一個"NETWORK SERVICE"用戶(點擊「高級」按鈕查找,不是手動輸入),並給它賦予"本地啓動"和"本地激活"權限.

7:依然是"安全"標籤,在"訪問權限"上點擊"自定義",而後點擊"編輯",在彈出的"安全性"對話框中也填加一個"NETWORK SERVICE"用戶(點擊「高級」按鈕查找,不是手動輸入),而後賦予"本地訪問"權限.

 

按照上面的步驟作完以後可能還會報下面這樣一個錯:(或者說一種奇怪的狀況:遠程鏈接着服務器時,操做OK;關閉遠程登陸時,操做失敗)

檢索 COM 類工廠中CLSID 爲 {000209FF-0000-0000-C000-000000000046} 的組件時失敗,緣由是出現如下錯誤:8000401a。

8.運行dcomcnfg打開組件服務,

9.依次展開"組件服務"->"計算機"->"個人電腦"->"DCOM配置"

10.找到"Microsoft Excel應用程序"或"MicrosoftWord應用程序",

11.右鍵打開屬性對話框,點擊"標識"選項卡,

12.點"下列用戶",把管理員的用戶密碼正確填寫進去...

13.點擊"安全"選項卡,

14.依次把"啓動和激活權限","訪問權限","配置權限",都選擇爲自定義,

若是上面這些步驟都作完以後尚未解決問題,就須要在config文件中<system.web>節點下添加以下一句話

<identity impersonate="true" userName="Administrator" password="xxxxxxx" />

服務器登陸名和服務器登陸密碼要與上面第12步輸入的用戶名,密碼相一致。

原文引自:http://blog.csdn.net/dotnet25/article/details/26495189


Git路徑配置:

 Git clone https://username:password@git.domain.com/project.git 
若是username中有@符號,能夠用 %40 代替


 關於頁面的滾動問題

$(document).height()     //是獲取整個頁面的高度 ,不隨窗口變化而變更
$(window).height()       //是獲取當前 也就是你瀏覽器所能看到的頁面的那部分的高度 注意當瀏覽器窗口大小改變時(如最大化或拉大窗口後) 會變化
$(document).scrollTop()  //獲取垂直滾動的距離  即當前滾動的地方的窗口頂端到整個頁面頂端的距離
$(document).scrollLeft() //這是獲取水平滾動條的距離
scrollTop()==0           //頂端
scrollTop()>=$(document).height()-$(window).height() //已經滾動到底端

 


 

同一DIV中,多個同級子Div 同高度自適應

 

<div style="overflow:hidden;">
    <div style="padding-bottom:2000px;margin-bottom:-2000px;"></div>
    <div style="padding-bottom:2000px;margin-bottom:-2000px;"></div>   
</div>

 padding 和 margin 的數值根據合適自定 padding-bottom = -(margin-bottom)

設定值爲子div中高的最大值,可實現子div自動等高


 C# 數據對比


List
<string> ListA = new List<string>(); List<string> ListB = new List<string>(); List<string> ListResult = new List<string>(); ListResult = ListA.Distinct().ToList();//去重 ListResult = ListA.Except(ListB).ToList();//差集 ListResult= ListA.Union(ListB).ToList(); //並集 ListResult = ListA.Intersect(ListB).ToList();//交集
<注:類集合不適用>

 


 

 Next


 

/************************End******************************/
相關文章
相關標籤/搜索