2011年11月13日 星期日

設定ICON

方法一:
將圖示檔的檔名設為 favicon.ico 放到網站的根目錄,即可。
(限定檔名)

方法二:
在<head></head>之間填入以下編碼:
<link rel="shortcut icon" href="http://我的網址/myicon.ico">
(未限定檔名)

※取得Get參數的值

取得Get參數的值
function getQueryString(paramName) {
    // paramName:欲取得GET值的參數名稱
    paramName = paramName.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]").toLowerCase();
    var reg = "[\\?&]" + paramName + "=([^&#]*)";
    var regex = new RegExp(reg);
    var regResults = regex.exec(window.location.href.toLowerCase());
    if (regResults == null) return "";
    else return regResults[1];
}

參考網址
http://save-coco.blogspot.com/2010/02/javascriptgetexample.html
http://blog.xuite.net/ahdaa/blog1/31825228

※控制 span的文字

SpanID. innerText = “文字”;

innerText是指一个元素里的文本内容
innerHtml是指一个元素里的HTML内容
參考網址

※ 字串去除空白

字串去除空白

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, "");
}

參考網址

※驗證輸入的資料

1.是否為數字
function isNumber(val) {   
   var reg = /^[0-9]*$/;   
   return reg.test(val);   
}

2.日期是否正確
// 使用Date.parse(str)函式
function checkDate(str) {
  var t = Date.parse(str);
  if(isNaN(t)) {
    alert('你輸入的不是日期');
    return;
  }
  alert('你輸入的日期距離 1970 1 1 ' + t + ' ');
}

3. RadioCheckbox群組是否至少一項有勾選

4.文字所佔的Bytes數是否超過上限


// JScript File
//******************加強javascript功能*****//
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, "");
}
//******************驗證*******************//
//檢測中英文夾雜字串實際長度
function CheckLen(ControlID,Length,FieldDesc,blnRequest)
{
    var control = GetControl(ControlID);
    var value = GetControlValue(ControlID);
    var strAlert = "";
    if(blnRequest==true)
    {
        strAlert = CheckControl("Request",ControlID,FieldDesc);
            if(strAlert != "")
                    return strAlert;         
    }
    else if(value=="") return "";
   

    if( blen(value) > Length )
    {
        return FieldDesc+" 欄位中文字不可超過"+(Length/2)+"個字或英文字不可超過"+Length+"個字!\r\n";
    }
    return "";
}
//檢測中英文夾雜字串實際長度
function blen(str)             
{
    //參考網址
    //http://www.360doc.com/content/081222/15/16915_2177384.html
    var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;
    return len;
}
//判斷起始時間是否大於結束時間
function CheckDateRange (BegDateID,EndDateID,FieldDesc,blnRequest)
{
    var objBegDate;
    var objEndDate;
    var valueBegDate,valueEndDate;
   
    objBegDate = GetControl(BegDateID);
    objEndDate = GetControl(EndDateID);
    valueBegDate = GetControlValue(BegDateID);
    valueEndDate = GetControlValue(EndDateID);
    dtBegDate = Date.parse(objBegDate.value);
    dtEndDate = Date.parse(objEndDate.value);
   
    if(blnRequest==true)
    {
            strAlert = CheckControl("Request",BegDateID,FieldDesc+"開始日期");
            if(strAlert != "")
                    return strAlert; 
            strAlert = CheckControl("Request",EndDateID,FieldDesc+"結束日期");
            if(strAlert != "")
                    return strAlert;                         
    }
    else if(valueBegDate=="" || valueEndDate) return "";

    if(dtBegDate > dtEndDate)
    {
         return "日期較大的, 不能放在前面 !\r\n";
    }
    return "";
}
//判斷是否為日期格式
function CheckDate(ControlID,FieldDesc,blnRequest)
{
    var control = GetControl(ControlID);
    var value = GetControlValue(ControlID);
    if(blnRequest==true)
    {
            strAlert = CheckControl("Request",ControlID,FieldDesc);
            if(strAlert != "")
                    return strAlert;         
    }
    else if(value=="") return "";
  //規則 yyyy/mm/dd
  var obj,strValue,flag=false;
  strValue = GetControlValue(ControlID);
  if(strValue == "" )
      return "";
  var objRegExp  = /^\d{4}\/\d{1,2}\/\d{1,2}$/;

  //check to see if in correct format
  if(!objRegExp.test(strValue))
  {
    return FieldDesc+" 欄位必須為西元日期格式 ! (yyyy/mm/dd)\r\n";
    //doesn't match pattern, bad date
  }
  else{
    var strSeparator = '/';
    var arrayDate = strValue.split(strSeparator);
    //create a lookup for months not equal to Feb.
    var arrayLookup = { '01' : 31,'03' : 31,
                        '04' : 30,'05' : 31,
                        '06' : 30,'07' : 31,
                        '08' : 31,'09' : 30,
                        '10' : 31,'11' : 30,'12' : 31}
    var intDay = parseInt(arrayDate[2],10);

    //check if month value and day value agree
    if(arrayLookup[arrayDate[1]] != null) {
      if(intDay <= arrayLookup[arrayDate[1]] && intDay != 0)
        flag= true; //found in lookup table, good date
    }
   
    //check for February (bugfix 20050322)
    //bugfix  for parseInt kevin
    //bugfix  biss year  O.Jp Voutat
    var intMonth = parseInt(arrayDate[1],10);
    if (intMonth == 2) {
       var intYear = parseInt(arrayDate[0]);
       if (intDay > 0 && intDay < 29) {
           flag= true;
       }
       else if (intDay == 29) {
         if ((intYear % 4 == 0) && (intYear % 100 != 0) ||
             (intYear % 400 == 0)) {
              // year div by 4 and ((not div by 100) or div by 400) ->ok
             flag= true;
         }  
       }
    }
  } 
 
  if(flag==false)
  {
      return FieldDesc+" 欄位日期資料有誤 !\r\n";
  }
  return "";
}
//判斷是否為數字格式
function CheckNumber(ControlID,FieldDesc,blnRequest)
{
    var control = GetControl(ControlID);
    var value = GetControlValue(ControlID);
    if(blnRequest==true)
    {
            strAlert = CheckControl("Request",ControlID,FieldDesc);
            if(strAlert != "")
                    return strAlert;         
    }
    else if(value=="") return "";
   
    if(IsNumber(value)==false)
    {
        return FieldDesc+" 欄位必須為數字 !\r\n";
    }
    return "";
}
//判斷是否為整數格式
function CheckInteger(ControlID,FieldDesc,blnRequest)
{
    var control = GetControl(ControlID);
    var value = GetControlValue(ControlID);
    if(blnRequest==true)
    {
            strAlert = CheckControl("Request",ControlID,FieldDesc);
            if(strAlert != "")
                    return strAlert;         
    }
    else if(value=="") return "";
   
    if(IsInteger(value)==false)
    {
        return FieldDesc +" 欄位必須為整数 \r\n";
    }
    return "";
       
}
//判斷是否為Email格式
function CheckEmail(ControlID,FieldDesc,blnRequest)
{  
    var control = GetControl(ControlID);
    var value = GetControlValue(ControlID);
    if(blnRequest==true)
    {
            strAlert = CheckControl("Request",ControlID,FieldDesc);
            if(strAlert != "")
                    return strAlert;         
    }
    else if(value=="") return "";
   
    if(IsEmail(value)==false)
    {
        return FieldDesc +" 欄位必須為E-mail\r\n";
    }
    return "";
}
//判斷是否為身份證字號格式
function CheckIdNumber(ControlID,FieldDesc,blnRequest)
{
    var control = GetControl(ControlID);
    var value = GetControlValue(ControlID);
    if(blnRequest==true)
    {
            strAlert = CheckControl("Request",ControlID,FieldDesc);
            if(strAlert != "")
                    return strAlert;         
    }
    else if(value=="") return "";
   
    if(IsIdNumber(value)==false)
    {
        return FieldDesc +" 欄位必須為身份證字號格式!\r\n";
    }
    return "";
}
//確認是否輸入資料
function CheckRequest(ControlID,FieldDesc)
{
    var control =GetControl(ControlID);
    var value = GetControlValue(ControlID);
    var tagName = control.tagName.toLowerCase();
    if(tagName=="select")
    {
            if(control.options[control.selectedIndex].value=="")
            {
                    return "請選擇"+FieldDesc+"\r\n";
        }
            else
                    return "";
    }
    else if(tagName=="input")
    {
            var type = control.type
            switch(type)
            {
                    case "text":
                            if(IsEmpty(value))
                            {
                                    return "請輸入"+FieldDesc+"\r\n";
                        }
                            break;
                    case "checkbox":                         
                            break;
                    case "radio":
                            break;
            }
    }
    return "";
}
//*******************************共用方法***********************************//
//取得控制項
function GetControlValue(ControlID)
{
    var control;
    var value;
    control = GetControl(ControlID);   
    value = control.value;
    return value
}
//取得控制項的值
function GetControl(ControlID)
{
    return document.getElementById(ControlID); 
}
//強化版測試Function
function CheckControl(type,ControlID,FieldDesc,blnRequest)
{
    switch(type)
    {
        case "Date":
                return CheckDate(ControlID,FieldDesc,blnRequest) ;
                    break;
            case "Number":
                    return CheckNumber(ControlID,FieldDesc,blnRequest);
                    break;
            case "Integer":
                    return CheckInteger(ControlID,FieldDesc,blnRequest);
                    break;
            case "Email":
                    return CheckEmail(ControlID,FieldDesc,blnRequest);
                    break;
            case "IdNumber":
                    return CheckIdNumber(ControlID,FieldDesc,blnRequest);
                    break;
            case "Request":
                    return CheckRequest(ControlID,FieldDesc,blnRequest);
                    break;
    }
}
//控制項焦點設定
function ControlFocus(ControlID)
{
    var control = GetControl(ControlID);
    control.focus();
}
//*******************************基本判斷Function***************************//
//判斷是否為數字
function IsNumber(value)
{
    if(isNaN(value))
        return false;

    return true;
}
//判斷是否為整數
function IsInteger(value)
{
    var objRegExp  = /^-?\d+$/;

    if(!objRegExp.test(value))
        return false;
    return true;
}
//判斷控制項必須要有值
function IsEmpty(value)
{
    if(value.Trim()=="")
        return true;
    else
        return false;   
}
//判斷是否為E-mail
function IsEmail(value)
{  
    var objRegExp  = /^.+@.+\..+$/;

    if(!objRegExp.test(value))
        return false;
    return true;
}
//判斷是否為身份證字號
function IsIdNumber(value)
{
    // 依照字母的編號排列,存入陣列備用。
    var letters = new Array('A', 'B', 'C', 'D',
        'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M',
        'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
        'X', 'Y', 'W', 'Z', 'I', 'O');
    // 儲存各個乘數
    var multiply = new Array(1, 9, 8, 7, 6, 5,
                           4, 3, 2, 1);
    var nums = new Array(2);
    var firstChar;
    var firstNum;
    var lastNum;
    var total = 0;
    // 撰寫「正規表達式」。第一個字為英文字母,
    // 第二個字為12,後面跟著8個數字,不分大小寫。
    var regExpID=/^[a-z](1|2)\d{8}$/i;
    // 使用「正規表達式」檢驗格式
    if (value.search(regExpID)==-1) {
        // 基本格式錯誤       
        return false;
    } else {
        // 取出第一個字元和最後一個數字。
        firstChar = value.charAt(0).toUpperCase();
        lastNum = value.charAt(9);
    }
    // 找出第一個字母對應的數字,並轉換成兩位數數字。
    for (var i=0; i<26; i++) {
        if (firstChar == letters[i]) {
            firstNum = i + 10;
            nums[0] = Math.floor(firstNum / 10);
            nums[1] = firstNum - (nums[0] * 10);
            break;
        }
    }
    // 執行加總計算
    for(var i=0; i<multiply.length; i++){
        if (i<2) {
            total += nums[i] * multiply[i];
        } else {
            total += parseInt(value.charAt(i-1)) *
                multiply[i];
        }
    }
    // 和最後一個數字比對
    if ((10 - (total % 10))!= lastNum) {
        return false;
    }
    return true;
}

參考網址
http://www.dotblogs.com.tw/newmonkey48/archive/2009/11/22/12104.aspx
http://jax-work-archive.blogspot.com/2007/09/date.html
http://blog.xuite.net/vexed/tech/24809444