目前分類:Javascript (16)

瀏覽方式: 標題列表 簡短摘要

javascript 沒有支援 java的 replaceAll ,不過可以用RegExp來達成 :

ex1 :  replaceAll 小數點
var s1 = "A.B.C";
alert(s1.replace(/\./g,"_"));  //  "A_B_C"

ex2 : replaceAll 空白
var s2 = "A B C";
alert(s1.replace(/\s+/g,"_"));  //  "A_B_C"

 

felixhuang 發表在 痞客邦 留言(0) 人氣()

JSCookMenu 網址

JSCookMenu 是用 javascript 產生主選單的程式,使用方式很簡單,只要給它陣列就完成了,而且提供六種很酷的樣式讓你選擇。

而且是免費... 佛心來的...

felixhuang 發表在 痞客邦 留言(0) 人氣()

跟之前的 CheckBoxList 例子很像,ASP.NET 的 RadioButtonList 在 HTML 也是由 Table + checkbox 組成,如果要用 JavaScript 判斷 User 選了那個 RadioBox,可以參考以下範例:

var selValue;
var table = document.getElementById("RadioButtonList1");

for(i=0;i<table.rows[0].cells.length;i++)
     if(table.rows[0].cells[i].childNodes[0].checked == true)
      selValue = table.rows[0].cells[i].childNodes[0].value;

要注意的是,這裡的RadioButtionList是用水平橫式的(Horizontal),如果用直式的(Vertical),table.rows[0].cells[i]要改為table.rows[i].cells[0]。

felixhuang 發表在 痞客邦 留言(0) 人氣()

var i=null;
var obj = document.getElementById("DropDownList1");
for (i=0; i< obj.options.length; i++)
{
    if (obj.options[i].value == strDefault) // strDefault == 預設值
    {
        obj.selectedIndex = i;
        return;
    }
}

felixhuang 發表在 痞客邦 留言(0) 人氣()

var arrData = new Array("Saab","Volvo","BMW"); //重組下拉選單內容
var strDefault = "BMW"; // 預設值
var dd1 = document.getElementById("DropDownList1");

//清空 dropdownlist
while(dd1.options.length>0)
  dd1.options.remove(0);
    
var option = null;
for (i=0; i< arrData.length; i++)

  option = document.createElement("option");
  option.text = arrData[i];
  option.value = arrData[i];
  
  if (strDefault == arrData[i])
   option.setAttribute("selected","selected");
  
  dd1.options.add(option);
 }

felixhuang 發表在 痞客邦 留言(0) 人氣()

其實這只是個 javascript 的小技巧,但用慣ASP.NET的人可能還不知道,答案是...
window.document.getElementById('Button1').click();
另外,如果要觸發下拉選單的change event 可以 :
document.getElementById("DropDownlist1").onchange();

felixhuang 發表在 痞客邦 留言(2) 人氣()

function setCheckBox_Checking(a_TableID)
{
 /*
 Function    : 將 Table 裡的 Checkbox 全選或全不選
 Description : 使用於 Table 下的整行選取(DataGrid 也可使用),第一列不選
 Arguments   : [1]=[true/false] (選擇否),
               [2]=[0/number] (選擇 checkbox 在的欄位)
 Date        : 2006/6/21
  */
 var obj = document.all[a_TableID];
 var oRow = null; //obj.rows[obj.rows.length-1]; 
 var oCell = null; //obj.rows[0].cells[0]; 
 var oChkCell = null;   
 var oItem = null; 
 var iCellCount = 0;
 //
 // 辨斷傳入的參數
 var bChecked,iCol;
 if (arguments[1] == null) bChecked = true;
 else       bChecked = arguments[1];
 if (arguments[2] == null) iCol = 0;
 else       iCol = arguments[2];

 //lert(asStartPNo);
 var iRow = obj.rows.length;
 for(var i = 0 ; i < iRow ; i++)
 {
  oRow = obj.rows[i];
  iCellCount = oRow.cells.length;
  //  
  if(iCol <= iCellCount ){  // 設定欄只能小於總欄
   oChkCell = oRow.cells[iCol];
   oItem = oChkCell.childNodes.item(0);   
   // 辨斷是否為 Checkbox
   if(oItem.toString() == "[object]" && oItem.type.toLowerCase() == "checkbox" )
    oItem.checked = bChecked;  
  }
 }
}

felixhuang 發表在 痞客邦 留言(0) 人氣()

如果XML要儲存在網頁上,有時會因為特殊字元產生錯誤,可以先寫個轉換的 function :

function XMLEncode(str)
{
       str=Trim(str);

       str=str.replace("&","&amp;");

       str=str.replace("<","&lt;");

       str=str.replace(">","&gt;");

       str=str.replace("'","&apos;");

       str=str.replace("\"","&quot;");

       return str;

}

felixhuang 發表在 痞客邦 留言(0) 人氣()

/**************************
 開啟新視窗
***************************/
function openWindows(a_Url){
  var sUrl = a_Url;
  var sTitle = "開新視窗"; // 視窗標題
  var sToolbar = "no"; //
  var sLocation = "no"; //位置列
  var sDirectories = "no"; //目錄
  var sStatus = "no"; // 狀態列
  var sMenubar = "no";
  var sScrollbars = "yes";
  var sResizable = "no";
  var sWidth = "600";
  var sHeight = "550";
  var sParams = "toolbar=" + sToolbar + ",directories=" + sDirectories + ",status=" + sStatus + ",menubar=" + sMenubar + ",scrollbars=" + sScrollbars + ",resizable=" + sResizable + ",width=" + sWidth + ",height=" + sHeight;
  //alert(sParams);
  //
  window.open(sUrl,sTitle,sParams);
 }

felixhuang 發表在 痞客邦 留言(0) 人氣()

符號

表示式

說明或範例

不成立字串

.

a.

表示任何字元。

含字母 "a" 以及其後任一個字元的字串。

Ex: "ab", "bac"

"a", "ba"

重覆字串

*

ab*

表示沒有或更多字元。

"ab*":表示一個字串有一個a後面跟著零個或若干個b

Ex: "a", "ab", "abbb"

 

+

ab+

一次或更多字元。

"ab+":表示一個字串有一個a後面跟著至少一個b或者更多

Ex: “ab”,”abbbb”

 

?

ab?

沒有或一次字元。

ab?":表示一個字串有一個a後面跟著零個或者一個b

Ex: “a”,”ab”

 

[]

[13579]

方括號表示某些字元允許在一個字串中的某一特定位置出現。

包含 "1" "3" "5" "7" "9" 的字串。

Ex: "a3b", "1xy"

"y2k"

 

[0-9]

含數字之字串

不含數字之字串

 

[a-z0-9]

含數字或小寫字母之字串

不含數字及小寫字母之字串

 

[a-zA-Z0-9]

含數字或字母之字串

不含數字及字母之字串

 

b[aeiou]t

"bat", "bet", "bit", "bot", "but"

"bxt", "bzt"

 

^[a-zA-Z]

表示一個以字母開頭的字串

 

 

[0-9]%

表示一個百分號前有一位元的數位

 

 

[a-zA-Z0-9]$

表示一個字串以一個逗號後面跟著一個字母或數位結束

 

{}

ab{2}

用以表示重復次數的範圍。

表示一個字串有一個a跟著2b

Ex: "abb"

 

 

ab{2,}

表示一個字串有一個a跟著至少2b

 

 

ab{3,5}

表示一個字串有一個a跟著35b

 

字串位置

^

^xy

"xy" 開始的字串

Ex: "xyz", "xyab"

"axy", "bxy"

$

xy$

"xy" 結尾的字串

Ex: 例如:"axy", "abxy"

"xya", "xyb"

[^]

[^0-9]

不希望出現的字元,'^'應在方括號裏的第一位。

不含數字之字串

 

含數字之字串

 

%[^a-zA-Z]%

兩個百分號中不應該出現字母

 

 

[^aeiouAEIOU]

不含母音之字串

含母音之字串

 

[^\^]

不含 "^" 之字串,例如:"xyz", "abc"

"xy^", "a^bc"

特殊字元

\d

 

數字0~9

 

\D

 

非數字

 

\w

 

數字、字母、底線

 

\W

 

\w

 

\s

 

空白字元 + \r\t\n\f

 

\S

 

\s

 

|

(b¦cd)ef

表示”或”

"bef""cdef"

 

\

^\^

跳脫字元,將特殊符號的義意去除,^.$()¦*+?{\"這些字元前加上跳脫字元'\'

字首必須是^

 

 

 

 

 

felixhuang 發表在 痞客邦 留言(0) 人氣()

/**** LTrim(string):去除左空格  ****/
function LTrim(str) {
 return str.replace(/^[ \t\n\r]+/g, "");
}

/**** RTrim(string):去除右空格 ****/
function RTrim(str) {
 return str.replace(/[ \t\n\r]+$/g, "");
}


/**** Trim(string):去除前後空格 ****/
function Trim(str){
    return RTrim(LTrim(str));
}

felixhuang 發表在 痞客邦 留言(0) 人氣()

function checkCheckBox(sListID){
  var sArray;
  var bIsChecked = false;
  sArray = sListID.split(";"); // 使用 ";" 分隔所有的 CheckList.ID
  for(var i=0;i<sArray.length;i++){
   var oCheck = document.all[sArray[i]];
   if(oCheck.checked)
    bIsChecked = true; // 其中之一有選擇
  }
  return bIsChecked;
 }

felixhuang 發表在 痞客邦 留言(0) 人氣()

// 身份證字號
function checkID(string) {
  re = /^[A-Z]\d{9}$/;
  if (re.test(string))
   return true; 
 }
 
// 信用卡號
function checkCreditCard(string) {
  re = /^\d{4}-\d{4}-\d{4}-\d{4}$/;
 // re = /^(\d{4}-){3}\d{4}$/;
  if (re.test(string))
   return true; 
 }
 
// 英文名稱
function checkEnglishName(string) {
  re1 = /^[A-Za-z\-]+\s+[A-Za-z\-]+$/;
  re2 = /^[A-Za-z\-]+\s+[A-Za-z\-]+\s+[A-Za-z\-]+$/;
  if (re1.test(string) || re2.test(string))
   return true; 
 }
 
// Email
function checkEmail(string) {
  re = /^.+@.+\..{2,3}$/;
  if (re.test(string))
   return true; 
 }
 
// 數字
function checkNumber(string) {
  re = /^\d+$/;
  if (re.test(string))
   return true; 
 }
 
// TextBox
function checkValue(aTextID)
 {  
  re = /\S/;
  var oText = document.all[aTextID];
  var sVal = Trim(oText.value);  
  if(!re.test(sVal)){
   try{
    alert("[" + oText.title + "]" + " 必需填寫!")
    event.returnValue = false;
    oText.focus();
    return false;
   }
   catch (e){
    //alert(e.description);
   }
  }
  return true;
 } 

felixhuang 發表在 痞客邦 留言(0) 人氣()

判斷開啟的網頁是否完成下載,在一開始加入
 
 function chkPageLoad() {
 (document.readyState=="complete")?alert('完成'):setTimeout('Init()',100); }

felixhuang 發表在 痞客邦 留言(0) 人氣()

ASP.NET 的 CheckBoxList 是用這樣的方式組合的:
<table><tr><td><input type="checkbox" /><label >TextName</label></td></tr></table>

如果要以TextName 來比對,用 javascript 決定那些 chekbox 要 disabled,可以參考下面 function ,輸入值 chkID 是CheckBoxList 的 ClientID,listText 則要用 CheckBoxList.Item.Text 在 Client 組合成 string[] array,如  var listText = new Array("aaa","bbb","ccc");

 

function SetCheckBoxlistDisabled(chkID,listText){
  var objChk = document.getElementById(chkID);
    for(i=0;i<objChk.rows.length;i++){
      objChk.rows[i].cells[0].childNodes[0].disabled = true; //預設

      for(j=0;j<listText.length;j++){ // 逐一比對 Test
        if(listText[j] == objChk.rows[i].cells[0].innerText){
          objChk.rows[i].cells[0].childNodes[0].disabled = false;
        }
      }
   }
}

felixhuang 發表在 痞客邦 留言(0) 人氣()

在ASP.NET控制項中,CheckBoxList 是用 Table 加 checkbox 組合而成的,如果要用 javascript 做到全選或全部取消,需要一點小技巧

輸入參數 checkBoxID 是 CheckBoxList 的 ClientID, TRUE_OR_FALSE 要全選輸入true 或取消 false:

function SetCheckBoxListChecked(checkBoxID,TRUE_OR_FALSE){
          var table = document.getElementById(checkBoxID);
          for(i=0;i<table.rows.length;i++){
                    table.rows[i].cells[0].childNodes[0].checked = TRUE_OR_FALSE;
          }
}

felixhuang 發表在 痞客邦 留言(3) 人氣()